CommonLibSSE (Parapets fork)
TESIdleForm.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSFixedString.h"
4 #include "RE/B/BSString.h"
5 #include "RE/F/FormTypes.h"
6 #include "RE/T/TESCondition.h"
7 #include "RE/T/TESForm.h"
8 
9 namespace RE
10 {
11  class NiFormArray;
12 
13  struct IDLE_DATA // DATA
14  {
15  public:
16  enum class Flag
17  {
18  kNone = 0,
19  kParent = 1 << 0,
20  kSequence = 1 << 1,
21  kNoAttacking = 1 << 2,
22  kBlocking = 1 << 3
23  };
24 
25  // members
26  std::int8_t loopMin; // 0
27  std::int8_t loopMax; // 1
29  std::uint8_t animationGroupSelection; // 3
30  std::uint16_t replayDelay; // 4
31  };
32  static_assert(sizeof(IDLE_DATA) == 0x6);
33 
34  class TESIdleForm : public TESForm
35  {
36  public:
37  inline static constexpr auto RTTI = RTTI_TESIdleForm;
38  inline static constexpr auto FORMTYPE = FormType::Idle;
39 
40  struct RecordFlags
41  {
42  enum RecordFlag : std::uint32_t
43  {
44  kDeleted = 1 << 5,
45  kIgnored = 1 << 12
46  };
47  };
48 
49  ~TESIdleForm() override; // 00
50 
51  // override (TESForm)
52  void InitializeData() override; // 04
53  void ClearData() override; // 05
54  bool Load(TESFile* a_mod) override; // 06
55  TESForm* CreateDuplicateForm(bool a_createEditorID, void* a_arg2) override; // 09
56  void InitItemImpl() override; // 13
57  const char* GetFormEditorID() const override; // 32 - { return formEditorID.c_str(); }
58  bool SetFormEditorID(const char* a_str) override; // 33
59 
60  // members
62  IDLE_DATA data; // 28 - DATA
63  std::uint16_t pad2E; // 2E
65  TESIdleForm* parentIdle; // 38 - ANAM~
66  TESIdleForm* prevIdle; // 40 - ~ANAM
69  BSString formEditorID; // 58 - EDID
70  };
71  static_assert(sizeof(TESIdleForm) == 0x68);
72 }
Definition: NiTArray.h:282
Definition: TESCondition.h:989
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESIdleForm.h:35
BSFixedString animEventName
Definition: TESIdleForm.h:68
void InitItemImpl() override
~TESIdleForm() override
TESCondition conditions
Definition: TESIdleForm.h:61
static constexpr auto RTTI
Definition: TESIdleForm.h:37
std::uint16_t pad2E
Definition: TESIdleForm.h:63
static constexpr auto FORMTYPE
Definition: TESIdleForm.h:38
IDLE_DATA data
Definition: TESIdleForm.h:62
TESIdleForm * parentIdle
Definition: TESIdleForm.h:65
void ClearData() override
bool Load(TESFile *a_mod) override
bool SetFormEditorID(const char *a_str) override
TESIdleForm * prevIdle
Definition: TESIdleForm.h:66
const char * GetFormEditorID() const override
NiFormArray * childIdles
Definition: TESIdleForm.h:64
TESForm * CreateDuplicateForm(bool a_createEditorID, void *a_arg2) override
BSFixedString animFileName
Definition: TESIdleForm.h:67
BSString formEditorID
Definition: TESIdleForm.h:69
void InitializeData() override
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESIdleForm
Definition: Offsets_RTTI.h:6003
Definition: TESIdleForm.h:14
std::uint16_t replayDelay
Definition: TESIdleForm.h:30
stl::enumeration< Flag, std::uint8_t > flags
Definition: TESIdleForm.h:28
std::int8_t loopMax
Definition: TESIdleForm.h:27
Flag
Definition: TESIdleForm.h:17
std::uint8_t animationGroupSelection
Definition: TESIdleForm.h:29
std::int8_t loopMin
Definition: TESIdleForm.h:26
Definition: TESIdleForm.h:41
RecordFlag
Definition: TESIdleForm.h:43
@ kIgnored
Definition: TESIdleForm.h:45
@ kDeleted
Definition: TESIdleForm.h:44