CommonLibVR
FirstPersonState.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/N/NiPoint3.h"
5 #include "RE/T/TESCameraState.h"
6 
7 namespace RE
8 {
9  class NiNode;
10 
12  public TESCameraState, // 00
13  public PlayerInputHandler // 20
14  {
15  public:
16  inline static constexpr auto RTTI = RTTI_FirstPersonState;
17  inline static constexpr auto VTABLE = VTABLE_FirstPersonState;
18 
19  ~FirstPersonState() override; // 00
20 
21  // override (TESCameraState)
22  void Begin() override; // 01
23  void End() override; // 02
24  void Update(BSTSmartPointer<TESCameraState>& a_nextState) override; // 03
25  void GetRotation(NiQuaternion& a_rotation) override; // 04
26  void GetTranslation(NiPoint3& a_translation) override; // 05
27  void SaveGame(BGSSaveFormBuffer* a_buf) override; // 06
28  void LoadGame(BGSLoadFormBuffer* a_buf) override; // 07
29  void Revert(BGSLoadFormBuffer* a_buf) override; // 08
30 
31  // override (PlayerInputHandler)
32  bool CanProcess(InputEvent* a_event) override; // 01
33  void ProcessButton(ButtonEvent* a_event, PlayerControlsData* a_movementData) override; // 04
34 
35  // members
39  std::uint32_t pad54; // 54
42  float sittingRotation; // 68
43  float unk6C; // 6C
44  float unk70; // 70
45  float currentPitchOffset; // 74 - [-100, 100]
46  float targetPitchOffset; // 78 - [-100, 100]
47  float unk7C; // 7C
48  std::uint32_t unk80; // 80
49  bool cameraOverride; // 84
50  bool cameraPitchOverride; // 85
51  std::uint16_t unk86; // 86
52  std::uint64_t unk88; // 88
53  private:
54  KEEP_FOR_RE()
55  };
56 #ifndef SKYRIMVR
57  static_assert(sizeof(FirstPersonState) == 0x90);
58 #else
59  static_assert(sizeof(FirstPersonState) == 0xA8);
60 #endif
61 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BGSLoadFormBuffer.h:11
Definition: BGSSaveFormBuffer.h:8
Definition: BSTSmartPointer.h:37
Definition: ButtonEvent.h:16
Definition: FirstPersonState.h:14
void GetRotation(NiQuaternion &a_rotation) override
static constexpr auto VTABLE
Definition: FirstPersonState.h:17
bool CanProcess(InputEvent *a_event) override
NiPoint3 lastFrameSpringVelocity
Definition: FirstPersonState.h:37
std::uint16_t unk86
Definition: FirstPersonState.h:51
void LoadGame(BGSLoadFormBuffer *a_buf) override
float sittingRotation
Definition: FirstPersonState.h:42
float unk70
Definition: FirstPersonState.h:44
void Revert(BGSLoadFormBuffer *a_buf) override
void ProcessButton(ButtonEvent *a_event, PlayerControlsData *a_movementData) override
std::uint32_t unk80
Definition: FirstPersonState.h:48
bool cameraOverride
Definition: FirstPersonState.h:49
void End() override
~FirstPersonState() override
void GetTranslation(NiPoint3 &a_translation) override
NiNode * firstPersonFOVControl
Definition: FirstPersonState.h:41
bool cameraPitchOverride
Definition: FirstPersonState.h:50
float currentPitchOffset
Definition: FirstPersonState.h:45
std::uint64_t unk88
Definition: FirstPersonState.h:52
float unk7C
Definition: FirstPersonState.h:47
float unk6C
Definition: FirstPersonState.h:43
NiPoint3 dampeningOffset
Definition: FirstPersonState.h:38
NiAVObject * firstPersonCameraObj
Definition: FirstPersonState.h:40
void Begin() override
NiPoint3 lastPosition
Definition: FirstPersonState.h:36
std::uint32_t pad54
Definition: FirstPersonState.h:39
void Update(BSTSmartPointer< TESCameraState > &a_nextState) override
float targetPitchOffset
Definition: FirstPersonState.h:46
static constexpr auto RTTI
Definition: FirstPersonState.h:16
void SaveGame(BGSSaveFormBuffer *a_buf) override
Definition: InputEvent.h:25
Definition: NiAVObject.h:57
Definition: NiNode.h:12
Definition: NiPoint3.h:6
Definition: NiQuaternion.h:6
Definition: PlayerControlsData.h:8
Definition: PlayerInputHandler.h:13
Definition: TESCameraState.h:16
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_FirstPersonState(static_cast< std::uint64_t >(688778))
constexpr std::array< REL::ID, 2 > VTABLE_FirstPersonState
Definition: Offsets_VTABLE.h:11656