CommonLibVR
BGSCameraShot.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESForm.h"
7 #include "RE/T/TESModel.h"
8 
9 namespace RE
10 {
11  class BGSCameraShot :
12  public TESForm, // 00
13  public TESModel, // 20
14  public TESImageSpaceModifiableForm // 48
15  {
16  public:
17  inline static constexpr auto RTTI = RTTI_BGSCameraShot;
18  inline static constexpr auto VTABLE = VTABLE_BGSCameraShot;
19  inline static constexpr auto FORMTYPE = FormType::CameraShot;
20 
21  enum class CAM_ACTION
22  {
23  kShoot = 0,
24  kFly = 1,
25  kHit = 2,
26  kZoom = 3
27  };
28 
29  enum class CAM_OBJECT
30  {
31  kAttacker = 0,
32  kProjectile = 1,
33  kTarget = 2,
34  kLeadActor = 3
35  };
36 
37  struct RecordFlags
38  {
39  enum RecordFlag : std::uint32_t
40  {
41  kDeleted = 1 << 5,
42  kIgnored = 1 << 12
43  };
44  };
45 
46  struct CAMERA_SHOT_DATA // DATA
47  {
48  public:
49  enum class Flag
50  {
51  kNone = 0,
52  kPositionFollowsLocation = 1 << 0,
53  kRotationFollowsTarget = 1 << 1,
54  kDontFollowBone = 1 << 2,
55  kFirstPersonCamera = 1 << 3,
56  kNoTracer = 1 << 4,
57  kStartAtTimeZero = 1 << 5
58  };
59 
60  // members
65  float playerTimeMult; // 10
66  float targetTimeMult; // 14
67  float globalTimeMult; // 18
68  float maxTime; // 1C
69  float minTime; // 20
71  float nearTargetDistance; // 28
72  };
73  static_assert(sizeof(CAMERA_SHOT_DATA) == 0x2C);
74 
75  ~BGSCameraShot() override; // 00
76 
77  // override (TESForm)
78  void InitializeData() override; // 04
79  bool Load(TESFile* a_mod) override; // 06
80  void InitItemImpl() override; // 13
81 
82  // members
83  CAMERA_SHOT_DATA data; // 58 - DATA
84  std::uint32_t pad84; // 84
85  void* unk88; // 88 - smart ptr
86  void* unk90; // 90 - smart ptr
88  std::uint32_t unk9C; // 9C
89  NiPointer<NiNode> cameraNode; // A0 - smart ptr
90  NiPointer<NiAVObject> unkA8; // A8 - smart ptr
91  std::uint8_t unkB0; // B0
92  bool unkB1; // B1
93  std::uint16_t padB2; // B2
94  std::uint32_t padB4; // B4
96  private:
97  KEEP_FOR_RE()
98  };
99  static_assert(sizeof(BGSCameraShot) == 0xC0);
100 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSCameraShot.h:15
RefHandle unk98
Definition: BGSCameraShot.h:87
std::uint16_t padB2
Definition: BGSCameraShot.h:93
void * unk90
Definition: BGSCameraShot.h:86
~BGSCameraShot() override
void InitItemImpl() override
std::uint8_t unkB0
Definition: BGSCameraShot.h:91
NiPointer< NiNode > cameraNode
Definition: BGSCameraShot.h:89
bool Load(TESFile *a_mod) override
static constexpr auto FORMTYPE
Definition: BGSCameraShot.h:19
std::uint32_t unk9C
Definition: BGSCameraShot.h:88
std::uint32_t pad84
Definition: BGSCameraShot.h:84
CAM_ACTION
Definition: BGSCameraShot.h:22
CAM_OBJECT
Definition: BGSCameraShot.h:30
void InitializeData() override
CAMERA_SHOT_DATA data
Definition: BGSCameraShot.h:83
static constexpr auto VTABLE
Definition: BGSCameraShot.h:18
static constexpr auto RTTI
Definition: BGSCameraShot.h:17
NiPointer< NiAVObject > unkA8
Definition: BGSCameraShot.h:90
ModelDBHandle cameraHandle
Definition: BGSCameraShot.h:95
bool unkB1
Definition: BGSCameraShot.h:92
std::uint32_t padB4
Definition: BGSCameraShot.h:94
void * unk88
Definition: BGSCameraShot.h:85
Definition: NiSmartPointer.h:9
Definition: TESFile.h:17
Definition: TESForm.h:40
Definition: TESImageSpaceModifiableForm.h:10
Definition: TESModel.h:16
Definition: AbsorbEffect.h:6
constexpr std::array< REL::ID, 3 > VTABLE_BGSCameraShot
Definition: Offsets_VTABLE.h:8597
std::uint32_t RefHandle
Definition: BSCoreTypes.h:6
constexpr REL::ID RTTI_BGSCameraShot(static_cast< std::uint64_t >(513991))
Definition: BGSCameraShot.h:47
Flag
Definition: BGSCameraShot.h:50
float targetPercentBetweenActors
Definition: BGSCameraShot.h:70
float targetTimeMult
Definition: BGSCameraShot.h:66
stl::enumeration< CAM_OBJECT, std::uint32_t > target
Definition: BGSCameraShot.h:63
stl::enumeration< Flag, std::uint32_t > flags
Definition: BGSCameraShot.h:64
float globalTimeMult
Definition: BGSCameraShot.h:67
float nearTargetDistance
Definition: BGSCameraShot.h:71
stl::enumeration< CAM_ACTION, std::uint32_t > cameraAction
Definition: BGSCameraShot.h:61
float maxTime
Definition: BGSCameraShot.h:68
stl::enumeration< CAM_OBJECT, std::uint32_t > location
Definition: BGSCameraShot.h:62
float minTime
Definition: BGSCameraShot.h:69
float playerTimeMult
Definition: BGSCameraShot.h:65
Definition: BGSCameraShot.h:38
RecordFlag
Definition: BGSCameraShot.h:40
@ kDeleted
Definition: BGSCameraShot.h:41
@ kIgnored
Definition: BGSCameraShot.h:42