CommonLibSSE (Parapets fork)
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 FORMTYPE = FormType::CameraShot;
18 
19  enum class CAM_ACTION
20  {
21  kShoot = 0,
22  kFly = 1,
23  kHit = 2,
24  kZoom = 3
25  };
26 
27  enum class CAM_OBJECT
28  {
29  kAttacker = 0,
30  kProjectile = 1,
31  kTarget = 2,
32  kLeadActor = 3
33  };
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 CAMERA_SHOT_DATA // DATA
45  {
46  public:
47  enum class Flag
48  {
49  kNone = 0,
50  kPositionFollowsLocation = 1 << 0,
51  kRotationFollowsTarget = 1 << 1,
52  kDontFollowBone = 1 << 2,
53  kFirstPersonCamera = 1 << 3,
54  kNoTracer = 1 << 4,
55  kStartAtTimeZero = 1 << 5
56  };
57 
58  // members
63  float playerTimeMult; // 10
64  float targetTimeMult; // 14
65  float globalTimeMult; // 18
66  float maxTime; // 1C
67  float minTime; // 20
69  float nearTargetDistance; // 28
70  };
71  static_assert(sizeof(CAMERA_SHOT_DATA) == 0x2C);
72 
73  ~BGSCameraShot() override; // 00
74 
75  // override (TESForm)
76  void InitializeData() override; // 04
77  bool Load(TESFile* a_mod) override; // 06
78  void InitItemImpl() override; // 13
79 
80  // members
81  CAMERA_SHOT_DATA data; // 58 - DATA
82  std::uint32_t pad84; // 84
83  void* unk88; // 88 - smart ptr
84  void* unk90; // 90 - smart ptr
86  std::uint32_t unk9C; // 9C
87  void* unkA0; // A0 - smart ptr
88  void* unkA8; // A8 - smart ptr
89  std::uint64_t unkB0; // B0
90  void* unkB8; // B8
91  };
92  static_assert(sizeof(BGSCameraShot) == 0xC0);
93 }
Definition: BGSCameraShot.h:14
RefHandle unk98
Definition: BGSCameraShot.h:85
std::uint64_t unkB0
Definition: BGSCameraShot.h:89
void * unk90
Definition: BGSCameraShot.h:84
~BGSCameraShot() override
void InitItemImpl() override
void * unkA0
Definition: BGSCameraShot.h:87
bool Load(TESFile *a_mod) override
static constexpr auto FORMTYPE
Definition: BGSCameraShot.h:17
std::uint32_t unk9C
Definition: BGSCameraShot.h:86
std::uint32_t pad84
Definition: BGSCameraShot.h:82
void * unkB8
Definition: BGSCameraShot.h:90
CAM_ACTION
Definition: BGSCameraShot.h:20
CAM_OBJECT
Definition: BGSCameraShot.h:28
void * unkA8
Definition: BGSCameraShot.h:88
void InitializeData() override
CAMERA_SHOT_DATA data
Definition: BGSCameraShot.h:81
static constexpr auto RTTI
Definition: BGSCameraShot.h:16
void * unk88
Definition: BGSCameraShot.h:83
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESImageSpaceModifiableForm.h:10
Definition: TESModel.h:16
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_BGSCameraShot
Definition: Offsets_RTTI.h:1274
std::uint32_t RefHandle
Definition: BSCoreTypes.h:6
Definition: BGSCameraShot.h:45
Flag
Definition: BGSCameraShot.h:48
float targetPercentBetweenActors
Definition: BGSCameraShot.h:68
float targetTimeMult
Definition: BGSCameraShot.h:64
stl::enumeration< CAM_OBJECT, std::uint32_t > target
Definition: BGSCameraShot.h:61
stl::enumeration< Flag, std::uint32_t > flags
Definition: BGSCameraShot.h:62
float globalTimeMult
Definition: BGSCameraShot.h:65
float nearTargetDistance
Definition: BGSCameraShot.h:69
stl::enumeration< CAM_ACTION, std::uint32_t > cameraAction
Definition: BGSCameraShot.h:59
float maxTime
Definition: BGSCameraShot.h:66
stl::enumeration< CAM_OBJECT, std::uint32_t > location
Definition: BGSCameraShot.h:60
float minTime
Definition: BGSCameraShot.h:67
float playerTimeMult
Definition: BGSCameraShot.h:63
Definition: BGSCameraShot.h:36
RecordFlag
Definition: BGSCameraShot.h:38
@ kDeleted
Definition: BGSCameraShot.h:39
@ kIgnored
Definition: BGSCameraShot.h:40