CommonLibVR
CrosshairPickData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSPointerHandle.h"
4 #include "RE/N/NiPoint3.h"
5 #include "RE/N/NiSmartPointer.h"
6 
7 namespace RE
8 {
9  class bhkRigidBody;
10  class bhkSimpleShapePhantom;
11 
12  struct VRControls
13  {
14  enum VR_DEVICE : std::uint32_t
15  {
18  kHeadset, // Can be kGamepad when in gamepad mode
19 
20  kTotal
21  };
22  };
24 
26  {
27  public:
29  {
30  REL::Relocation<CrosshairPickData**> singleton{ RELOCATION_ID(515446, 401585) };
31  return *singleton;
32  }
33 
34  // members
35 #ifndef SKYRIMVR
36  std::uint32_t pad00; // 00
41  std::uint32_t pad1C; // 1C
44  std::uint32_t collisionInfo; // 30
45  std::uint8_t unk34; // 34
46  std::uint8_t unk35; // 35
47  std::uint16_t unk36; // 36
48 #else
49  std::uint32_t pad00; // 00
50  ObjectRefHandle target[VR_DEVICE::kTotal]; // 04
51  ObjectRefHandle targetActor[VR_DEVICE::kTotal]; // 10
52  ObjectRefHandle grabPickRef[VR_DEVICE::kTotal]; // 1C
53  NiPoint3 collisionPoint[VR_DEVICE::kTotal]; // 28
54  std::uint32_t pad4C; // 4C
55  std::uint64_t unk50[VR_DEVICE::kTotal]; // 50
56  float unk68; // 68
57  float unk6C; // 68
58  std::uint32_t unk70; // 70
59  std::uint32_t unk74; // 74
61  std::uint32_t unk80; // 80
62  std::uint16_t unk84; // 84
63  std::byte unk86; // 86
64 #endif
65  private:
66  KEEP_FOR_RE()
67  };
68 #ifndef SKYRIMVR
69  static_assert(sizeof(CrosshairPickData) == 0x38);
70 #else
71  static_assert(sizeof(CrosshairPickData) == 0x88);
72 #endif
73 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:702
Definition: Relocation.h:210
Definition: CrosshairPickData.h:26
std::uint32_t collisionInfo
Definition: CrosshairPickData.h:44
bhkRigidBody * targetCollider
Definition: CrosshairPickData.h:42
std::uint32_t pad00
Definition: CrosshairPickData.h:36
ObjectRefHandle grabPickRef
Definition: CrosshairPickData.h:39
ObjectRefHandle target
Definition: CrosshairPickData.h:37
std::uint8_t unk34
Definition: CrosshairPickData.h:45
std::uint16_t unk36
Definition: CrosshairPickData.h:47
NiPoint3 collisionPoint
Definition: CrosshairPickData.h:40
static CrosshairPickData * GetSingleton()
Definition: CrosshairPickData.h:28
std::uint32_t pad1C
Definition: CrosshairPickData.h:41
NiPointer< bhkSimpleShapePhantom > pickCollider
Definition: CrosshairPickData.h:43
ObjectRefHandle targetActor
Definition: CrosshairPickData.h:38
std::uint8_t unk35
Definition: CrosshairPickData.h:46
Definition: NiPoint3.h:6
Definition: bhkRigidBody.h:15
Definition: AbsorbEffect.h:6
Definition: CrosshairPickData.h:13
VR_DEVICE
Definition: CrosshairPickData.h:15
@ kRightController
Definition: CrosshairPickData.h:17
@ kHeadset
Definition: CrosshairPickData.h:18
@ kLeftController
Definition: CrosshairPickData.h:16
@ kTotal
Definition: CrosshairPickData.h:20