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