CommonLibVR
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 VTABLE = VTABLE_BGSCameraPath;
33  inline static constexpr auto FORMTYPE = FormType::CameraPath;
34 
35  struct RecordFlags
36  {
37  enum RecordFlag : std::uint32_t
38  {
39  kDeleted = 1 << 5,
40  kIgnored = 1 << 12
41  };
42  };
43 
44  struct Relatives
45  {
46  enum Relative
47  {
50 
51  kTotal
52  };
53  };
54 
55  ~BGSCameraPath() override; // 00
56 
57  // override (TESForm)
58  void InitializeData() override; // 04
59  void ClearData() override; // 05
60  bool Load(TESFile* a_mod) override; // 06
61  TESForm* CreateDuplicateForm(bool a_createEditorID, void* a_arg2) override; // 09
62  void InitItemImpl() override; // 13
63 
64  // members
67  PATH_DATA data; // 38 - DATA
68  std::uint8_t pad39; // 39
69  std::uint16_t pad3A; // 3A
70  std::uint32_t pad3C; // 3C
72  BGSCameraPath* parentPath; // 48 - ANAM~
73  BGSCameraPath* prevPath; // 48 - ~ANAM
74  private:
75  KEEP_FOR_RE()
76  };
77  static_assert(sizeof(BGSCameraPath) == 0x58);
78 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSCameraPath.h:29
BSSimpleList< BGSCameraShot * > shots
Definition: BGSCameraPath.h:66
TESForm * CreateDuplicateForm(bool a_createEditorID, void *a_arg2) override
void ClearData() override
static constexpr auto FORMTYPE
Definition: BGSCameraPath.h:33
TESCondition conditions
Definition: BGSCameraPath.h:65
std::uint16_t pad3A
Definition: BGSCameraPath.h:69
std::uint8_t pad39
Definition: BGSCameraPath.h:68
static constexpr auto VTABLE
Definition: BGSCameraPath.h:32
~BGSCameraPath() override
PATH_DATA data
Definition: BGSCameraPath.h:67
std::uint32_t pad3C
Definition: BGSCameraPath.h:70
BGSCameraPath * prevPath
Definition: BGSCameraPath.h:73
void InitItemImpl() override
static constexpr auto RTTI
Definition: BGSCameraPath.h:31
bool Load(TESFile *a_mod) override
NiFormArray * childPaths
Definition: BGSCameraPath.h:71
BGSCameraPath * parentPath
Definition: BGSCameraPath.h:72
void InitializeData() override
Definition: BSTList.h:10
Definition: NiTArray.h:282
Definition: TESCondition.h:992
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 1 > VTABLE_BGSCameraPath
Definition: Offsets_VTABLE.h:8596
constexpr REL::ID RTTI_BGSCameraPath(static_cast< std::uint64_t >(513990))
Definition: BGSCameraPath.h:36
RecordFlag
Definition: BGSCameraPath.h:38
@ kIgnored
Definition: BGSCameraPath.h:40
@ kDeleted
Definition: BGSCameraPath.h:39
Definition: BGSCameraPath.h:45
Relative
Definition: BGSCameraPath.h:47
@ kTotal
Definition: BGSCameraPath.h:51
@ kPreviousSibling
Definition: BGSCameraPath.h:49
@ kParent
Definition: BGSCameraPath.h:48
Definition: BGSCameraPath.h:13
PathFlags
Definition: BGSCameraPath.h:15
stl::enumeration< PathFlags, std::uint8_t > flags
Definition: BGSCameraPath.h:24