CommonLibSSE NG
BGSIdleCollection.h
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace RE
6 {
7  class TESIdleForm;
8 
10  {
11  public:
12  inline static constexpr auto RTTI = RTTI_BGSIdleCollection;
13 
14  enum class IdleFlags
15  {
16  kNone = 0,
17  kPickSequence = 1 << 0,
18  kOldPickConditions = 1 << 1,
19  kDoOnce = 1 << 2,
20  kLooseOnly = 1 << 3,
21  kNoSandbox = 1 << 4
22  };
23 
24  ~BGSIdleCollection() override; // 00
25 
26  // override (BaseFormComponent)
27  void InitializeDataComponent() override; // 01
28  void ClearDataComponent() override; // 02
29  void CopyComponent(BaseFormComponent* a_rhs) override; // 03
30 
31  bool AddIdle(TESIdleForm* a_idle);
33  std::optional<std::uint32_t> GetIndex(TESIdleForm* a_idle) const;
34  bool RemoveIdle(TESIdleForm* a_idle);
35 
36  // members
38  std::int8_t idleCount; // 09 - IDLC
39  std::uint16_t pad0A; // 0A
40  std::uint32_t pad0C; // 0C
41  TESIdleForm** idles; // 10 - IDLA
42  float timerCheckForIdle; // 18 - IDLT
43  std::uint32_t pad1C; // 1C
44 
45  private:
46  BGSIdleCollection* Ctor()
47  {
48  using func_t = decltype(&BGSIdleCollection::Ctor);
49  REL::Relocation<func_t> func{ RELOCATION_ID(14127, 14227) };
50  return func(this);
51  }
52  void CopyIdles(const std::vector<TESIdleForm*>& a_copiedData);
53  };
54  static_assert(sizeof(BGSIdleCollection) == 0x20);
55 }
#define RELOCATION_ID(a_se, a_ae)
Definition: PCH.h:724
Definition: Relocation.h:204
Definition: BGSIdleCollection.h:10
stl::enumeration< IdleFlags, std::int8_t > idleFlags
Definition: BGSIdleCollection.h:37
static BGSIdleCollection * Create()
~BGSIdleCollection() override
std::optional< std::uint32_t > GetIndex(TESIdleForm *a_idle) const
bool RemoveIdle(TESIdleForm *a_idle)
void CopyComponent(BaseFormComponent *a_rhs) override
bool AddIdle(TESIdleForm *a_idle)
void ClearDataComponent() override
std::int8_t idleCount
Definition: BGSIdleCollection.h:38
TESIdleForm ** idles
Definition: BGSIdleCollection.h:41
static constexpr auto RTTI
Definition: BGSIdleCollection.h:12
std::uint32_t pad0C
Definition: BGSIdleCollection.h:40
float timerCheckForIdle
Definition: BGSIdleCollection.h:42
void InitializeDataComponent() override
std::uint32_t pad1C
Definition: BGSIdleCollection.h:43
std::uint16_t pad0A
Definition: BGSIdleCollection.h:39
IdleFlags
Definition: BGSIdleCollection.h:15
Definition: BaseFormComponent.h:8
Definition: TESIdleForm.h:37
Definition: AbsorbEffect.h:6
constexpr REL::VariantID RTTI_BGSIdleCollection(513931, 392570, 0x1edb208)