CommonLibVR
TESCustomPackageData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
5 #include "RE/B/BSTArray.h"
6 #include "RE/B/BSTSmartPointer.h"
7 #include "RE/T/TESPackageData.h"
8 
9 namespace RE
10 {
11  class IPackageData;
12  class IProcedureTreeItem;
13  class TESPackage;
14 
16  {
17  IPackageData** data; // 00
18  std::int8_t* uids; // 08
19  std::uint16_t dataSize; // 10
20  std::int8_t nextUID; // 12 - XNAM
21  std::uint8_t pad13; // 13
22  std::uint32_t pad14; // 14
23  };
24  static_assert(sizeof(BGSPackageDataList) == 0x18);
25 
27  {
28  public:
29  struct NameMapData
30  {
31  public:
32  enum class Flag
33  {
34  kNone = 0,
35  kPublic = 1 << 0
36  };
37 
38  // members
39  BSFixedString name; // 00 - BNAM
40  std::int8_t uid; // 08 - UNAM
41  bool isPublic; // 09 - PNAM
42  std::uint8_t pad0A; // 0A
43  std::uint8_t pad0B; // 0B
44  std::uint32_t pad0C; // 0C
45  };
46  static_assert(sizeof(NameMapData) == 0x10);
47 
48  // members
49  std::uint32_t pad04; // 04
51  };
52  static_assert(sizeof(BGSPackageDataNameMap) == 0x20);
53 
55  {
56  public:
57  inline static constexpr auto RTTI = RTTI_TESCustomPackageData;
58  inline static constexpr auto VTABLE = VTABLE_TESCustomPackageData;
59 
60  ~TESCustomPackageData() override; // 00
61 
62  // override (TESPackageData)
63  void Copy(TESPackageData* a_package, TESForm* a_form) override; // 01
64  void InitItem(TESForm* a_form) override; // 03
65  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 04 - { return; }
66  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 05 - { return; }
67 
68  // members
73  std::uint16_t version; // 38
75  std::uint8_t pad3B; // 3B
76  std::uint32_t pad3C; // 3C
77  private:
78  KEEP_FOR_RE()
79  };
80  static_assert(sizeof(TESCustomPackageData) == 0x40);
81 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: BSTArray.h:378
Definition: BSTSmartPointer.h:37
Definition: IPackageData.h:12
Definition: IProcedureTreeItem.h:8
Definition: TESCustomPackageData.h:55
~TESCustomPackageData() override
bool alwaysRecheckConditions
Definition: TESCustomPackageData.h:74
std::uint16_t version
Definition: TESCustomPackageData.h:73
static constexpr auto RTTI
Definition: TESCustomPackageData.h:57
void LoadGame(BGSLoadFormBuffer *a_buf) override
void Copy(TESPackageData *a_package, TESForm *a_form) override
std::uint32_t pad3C
Definition: TESCustomPackageData.h:76
void SaveGame(BGSSaveFormBuffer *a_buf) override
void InitItem(TESForm *a_form) override
TESPackage * templateParent
Definition: TESCustomPackageData.h:72
std::uint8_t pad3B
Definition: TESCustomPackageData.h:75
BSTSmartPointer< BGSPackageDataNameMap > nameMap
Definition: TESCustomPackageData.h:71
BGSPackageDataList data
Definition: TESCustomPackageData.h:69
IProcedureTreeItem * procedureTree
Definition: TESCustomPackageData.h:70
static constexpr auto VTABLE
Definition: TESCustomPackageData.h:58
Definition: TESForm.h:40
Definition: TESPackageData.h:10
Definition: TESPackage.h:316
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_TESCustomPackageData
Definition: Offsets_VTABLE.h:12816
constexpr REL::ID RTTI_TESCustomPackageData(static_cast< std::uint64_t >(686030))
Definition: TESCustomPackageData.h:16
std::int8_t * uids
Definition: TESCustomPackageData.h:18
IPackageData ** data
Definition: TESCustomPackageData.h:17
std::uint16_t dataSize
Definition: TESCustomPackageData.h:19
std::uint8_t pad13
Definition: TESCustomPackageData.h:21
std::int8_t nextUID
Definition: TESCustomPackageData.h:20
std::uint32_t pad14
Definition: TESCustomPackageData.h:22
Definition: TESCustomPackageData.h:30
Flag
Definition: TESCustomPackageData.h:33
std::int8_t uid
Definition: TESCustomPackageData.h:40
std::uint32_t pad0C
Definition: TESCustomPackageData.h:44
std::uint8_t pad0B
Definition: TESCustomPackageData.h:43
BSFixedString name
Definition: TESCustomPackageData.h:39
bool isPublic
Definition: TESCustomPackageData.h:41
std::uint8_t pad0A
Definition: TESCustomPackageData.h:42
Definition: TESCustomPackageData.h:27
BSTArray< NameMapData > nameMap
Definition: TESCustomPackageData.h:50
std::uint32_t pad04
Definition: TESCustomPackageData.h:46
Definition: BSIntrusiveRefCounted.h:8