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