CommonLibSSE (powerof3)
BGSCameraPath.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSTList.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESCondition.h"
6 #include "RE/T/TESForm.h"
7 
8 namespace RE
9 {
10  class NiFormArray;
11 
12  struct PATH_DATA // DATA
13  {
14  enum class PathFlags
15  {
16  kNone = 0,
17  kZoomDisable = 1 << 0,
18  kZoomShotList = 1 << 1,
19  kDynamicTimes = 1 << 2,
20  kRandomPaths = 1 << 6,
21  kAllowNoShots = 1 << 7
22  };
23 
25  };
26  static_assert(sizeof(PATH_DATA) == 0x1);
27 
28  class BGSCameraPath : public TESForm
29  {
30  public:
31  inline static constexpr auto RTTI = RTTI_BGSCameraPath;
32  inline static constexpr auto FORMTYPE = FormType::CameraPath;
33 
34  struct RecordFlags
35  {
36  enum RecordFlag : std::uint32_t
37  {
38  kDeleted = 1 << 5,
39  kIgnored = 1 << 12
40  };
41  };
42 
43  struct Relatives
44  {
45  enum Relative
46  {
49 
50  kTotal
51  };
52  };
53 
54  ~BGSCameraPath() override; // 00
55 
56  // override (TESForm)
57  void InitializeData() override; // 04
58  void ClearData() override; // 05
59  bool Load(TESFile* a_mod) override; // 06
60  TESForm* CreateDuplicateForm(bool a_createEditorID, void* a_arg2) override; // 09
61  void InitItemImpl() override; // 13
62 
63  // members
66  PATH_DATA data; // 38 - DATA
67  std::uint8_t pad39; // 39
68  std::uint16_t pad3A; // 3A
69  std::uint32_t pad3C; // 3C
71  BGSCameraPath* parentPath; // 48 - ANAM~
72  BGSCameraPath* prevPath; // 48 - ~ANAM
73  };
74  static_assert(sizeof(BGSCameraPath) == 0x58);
75 }
Definition: BGSCameraPath.h:29
BSSimpleList< BGSCameraShot * > shots
Definition: BGSCameraPath.h:65
TESForm * CreateDuplicateForm(bool a_createEditorID, void *a_arg2) override
void ClearData() override
static constexpr auto FORMTYPE
Definition: BGSCameraPath.h:32
TESCondition conditions
Definition: BGSCameraPath.h:64
std::uint16_t pad3A
Definition: BGSCameraPath.h:68
std::uint8_t pad39
Definition: BGSCameraPath.h:67
~BGSCameraPath() override
PATH_DATA data
Definition: BGSCameraPath.h:66
std::uint32_t pad3C
Definition: BGSCameraPath.h:69
BGSCameraPath * prevPath
Definition: BGSCameraPath.h:72
void InitItemImpl() override
static constexpr auto RTTI
Definition: BGSCameraPath.h:31
bool Load(TESFile *a_mod) override
NiFormArray * childPaths
Definition: BGSCameraPath.h:70
BGSCameraPath * parentPath
Definition: BGSCameraPath.h:71
void InitializeData() override
Definition: BSTList.h:10
Definition: NiTArray.h:282
Definition: TESCondition.h:987
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSCameraPath
Definition: Offsets_RTTI.h:1273
Definition: BGSCameraPath.h:35
RecordFlag
Definition: BGSCameraPath.h:37
@ kIgnored
Definition: BGSCameraPath.h:39
@ kDeleted
Definition: BGSCameraPath.h:38
Definition: BGSCameraPath.h:44
Relative
Definition: BGSCameraPath.h:46
@ kTotal
Definition: BGSCameraPath.h:50
@ kPreviousSibling
Definition: BGSCameraPath.h:48
@ kParent
Definition: BGSCameraPath.h:47
Definition: BGSCameraPath.h:13
PathFlags
Definition: BGSCameraPath.h:15
stl::enumeration< PathFlags, std::uint8_t > flags
Definition: BGSCameraPath.h:24