CommonLibVR
BGSRefAlias.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BGSBaseAlias.h"
4 #include "RE/B/BSPointerHandle.h"
5 #include "RE/F/FormTypes.h"
6 #include "RE/Q/QuestEvents.h"
7 
8 namespace RE
9 {
10  class BGSLocationRefType;
11  class TESBoundObject;
12  class TESCondition;
13 
14  class BGSRefAlias : public BGSBaseAlias
15  {
16  public:
17  inline static constexpr auto RTTI = RTTI_BGSRefAlias;
18  inline static constexpr auto VTABLE = VTABLE_BGSRefAlias;
19  inline static constexpr auto VMTYPEID = static_cast<VMTypeID>(140);
20 
21  struct ForcedFillData // kForced
22  {
23  public:
24  // members
26  };
27  static_assert(sizeof(ForcedFillData) == 0x4);
28 
29  struct FromAliasFillData // kFromAlias
30  {
31  public:
32  // members
33  std::uint32_t forcedFromAlias; // 00 - ALFA
34  std::uint32_t pad04; // 04
36  };
37  static_assert(sizeof(FromAliasFillData) == 0x10);
38 
39  struct FromEventFillData // kFromEvent
40  {
41  public:
42  // members
44  std::uint32_t forcedEventData; // ALFD
45  };
46  static_assert(sizeof(FromEventFillData) == 0x8);
47 
48  struct CreatedFillData // kCreated
49  {
50  public:
51  enum class Level // ALCL
52  {
53  kEasy = 0,
54  kMedium = 1,
55  kHard = 2,
56  kVeryHard = 3,
57  kNone = 4
58  };
59 
60  struct Alias // ALCA
61  {
62  public:
63  enum class Create
64  {
65  kAt = 0x0000,
66  kIn = 0x8000
67  };
68 
69  // members
70  std::uint16_t alias; // 0
72  };
73  static_assert(sizeof(Alias) == 0x4);
74 
75  // members
76  TESBoundObject* object; // 00 - ALCO
77  Alias alias; // 08 - ALCA
79  std::uint16_t pad0E; // 0E
80  };
81  static_assert(sizeof(CreatedFillData) == 0x10);
82 
83  struct FromExternalFillData // kFromExternal
84  {
85  public:
86  // members
87  TESQuest* externalQuest; // 00 - ALEQ
88  std::uint32_t externalAlias; // 08 - ALEA
89  std::uint32_t pad0C; // 0C
90  };
91  static_assert(sizeof(FromExternalFillData) == 0x10);
92 
93  struct UniqueActorFillData // kUniqueActor
94  {
95  public:
96  // members
97  TESNPC* uniqueActor; // 0 - ALUA
98  };
99  static_assert(sizeof(UniqueActorFillData) == 0x8);
100 
101  struct NearAliasFillData // kNearAlias
102  {
103  public:
104  enum class NEARFILLTYPE
105  {
106  kLinkedChildren = 0,
107  kLinkedParents = 1
108  };
109 
110  // members
111  std::uint32_t nearAlias; // 0 - ALNA
113  };
114  static_assert(sizeof(NearAliasFillData) == 0x8);
115 
117  {
118  public:
119  struct Padding
120  {
121  public:
122  // members
123  std::uint64_t pad1; // 00
124  std::uint64_t pad2; // 08
125  std::uint64_t pad3; // 10
126  };
127  static_assert(sizeof(Padding) == 0x18);
128 
130 
131  // members
140  };
141  static_assert(sizeof(GenericFillData) == 0x18);
142 
143  ~BGSRefAlias() override; // 00
144 
145  // override (BGSBaseAlias)
146  bool Load(TESFile* a_mod) override; // 01
147  void InitItem(TESForm* a_form) override; // 02
148  [[nodiscard]] const BSFixedString& QType() const override; // 03 - { return "Ref"; }
149 
152 
153  // members
156  private:
157  KEEP_FOR_RE()
158  };
159  static_assert(sizeof(BGSRefAlias) == 0x48);
160 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: Actor.h:133
Definition: BGSBaseAlias.h:12
Definition: BGSLocationRefType.h:9
Definition: BGSRefAlias.h:15
const BSFixedString & QType() const override
GenericFillData fillData
Definition: BGSRefAlias.h:154
~BGSRefAlias() override
TESCondition * conditions
Definition: BGSRefAlias.h:155
void InitItem(TESForm *a_form) override
static constexpr auto RTTI
Definition: BGSRefAlias.h:17
static constexpr auto VTABLE
Definition: BGSRefAlias.h:18
TESObjectREFR * GetReference() const
bool Load(TESFile *a_mod) override
static constexpr auto VMTYPEID
Definition: BGSRefAlias.h:19
Actor * GetActorReference() const
Definition: TESBoundObject.h:26
Definition: TESCondition.h:992
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: TESNPC.h:36
Definition: TESObjectREFR.h:113
Definition: TESQuest.h:197
Definition: AbsorbEffect.h:6
QuestEvent
Definition: QuestEvents.h:6
constexpr REL::ID RTTI_BGSRefAlias(static_cast< std::uint64_t >(685398))
constexpr std::array< REL::ID, 1 > VTABLE_BGSRefAlias
Definition: Offsets_VTABLE.h:8843
std::uint32_t VMTypeID
Definition: BSCoreTypes.h:9
Definition: BGSRefAlias.h:61
Create
Definition: BGSRefAlias.h:64
stl::enumeration< Create, std::uint16_t > create
Definition: BGSRefAlias.h:71
std::uint16_t alias
Definition: BGSRefAlias.h:70
Definition: BGSRefAlias.h:49
Alias alias
Definition: BGSRefAlias.h:77
stl::enumeration< Level, std::uint16_t > level
Definition: BGSRefAlias.h:78
TESBoundObject * object
Definition: BGSRefAlias.h:73
std::uint16_t pad0E
Definition: BGSRefAlias.h:79
Level
Definition: BGSRefAlias.h:52
Definition: BGSRefAlias.h:22
ObjectRefHandle forcedRef
Definition: BGSRefAlias.h:25
Definition: BGSRefAlias.h:30
std::uint32_t pad04
Definition: BGSRefAlias.h:34
BGSLocationRefType * forcedRefType
Definition: BGSRefAlias.h:35
std::uint32_t forcedFromAlias
Definition: BGSRefAlias.h:33
Definition: BGSRefAlias.h:40
std::uint32_t forcedEventData
Definition: BGSRefAlias.h:44
QuestEvent forcedFromEvent
Definition: BGSRefAlias.h:43
Definition: BGSRefAlias.h:84
std::uint32_t externalAlias
Definition: BGSRefAlias.h:88
TESQuest * externalQuest
Definition: BGSRefAlias.h:87
std::uint32_t pad0C
Definition: BGSRefAlias.h:89
Definition: BGSRefAlias.h:120
std::uint64_t pad1
Definition: BGSRefAlias.h:123
std::uint64_t pad3
Definition: BGSRefAlias.h:125
std::uint64_t pad2
Definition: BGSRefAlias.h:124
Definition: BGSRefAlias.h:102
stl::enumeration< NEARFILLTYPE, std::uint32_t > nearFillType
Definition: BGSRefAlias.h:112
std::uint32_t nearAlias
Definition: BGSRefAlias.h:111
NEARFILLTYPE
Definition: BGSRefAlias.h:105
Definition: BGSRefAlias.h:94
TESNPC * uniqueActor
Definition: BGSRefAlias.h:97
Definition: BGSRefAlias.h:117
UniqueActorFillData uniqueActor
Definition: BGSRefAlias.h:138
FromAliasFillData fromAlias
Definition: BGSRefAlias.h:134
NearAliasFillData nearAlias
Definition: BGSRefAlias.h:139
~GenericFillData()
Definition: BGSRefAlias.h:129
CreatedFillData created
Definition: BGSRefAlias.h:136
FromExternalFillData fromExternal
Definition: BGSRefAlias.h:137
Padding padding
Definition: BGSRefAlias.h:132
FromEventFillData fromEvent
Definition: BGSRefAlias.h:135
ForcedFillData forced
Definition: BGSRefAlias.h:133