CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
VATS.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/A/ActorValues.h"
4#include "RE/B/BSAtomic.h"
5#include "RE/B/BSTArray.h"
6#include "RE/B/BSTSingleton.h"
8#include "RE/H/HitData.h"
9
10namespace RE
11{
12 class Actor;
13 class BGSCameraShot;
14 class BSLight;
15 class ExtraDataList;
16 class ImageSpaceModifierInstanceRB;
17 class TESBoundObject;
18
20 {
21 public:
22 std::uint32_t actionPoints; // 00 - 12
23 std::uint8_t unk04; // 04
24 std::uint8_t unk05; // 05
25 std::uint8_t unk06; // 06
26 std::uint8_t unk07; // 07
27 std::uint8_t unk08; // 08
28 std::uint8_t unk09; // 09
29 std::uint16_t unk0A; // 0A
32 std::uint32_t pad14; // 14
34 std::uint64_t unkA8; // A8
35 std::uint32_t unkB0; // B0
36 };
37 static_assert(sizeof(VATSCommand) == 0xB8);
38
39 class VATS : public BSTSingletonSDM<VATS>
40 {
41 public:
42 enum class VATS_MODE : std::uint32_t
43 {
44 kNone = 0,
45 kKillCam = 4
46 };
47
48 [[nodiscard]] static VATS* GetSingleton()
49 {
50 REL::Relocation<VATS**> singleton{ RELOCATION_ID(514725, 400883) };
51 return *singleton;
52 }
53
54 void SetMagicTimeSlowdown(float a_magicTimeSlowdown, float a_playerMagicTimeSlowdown)
55 {
56 using func_t = decltype(&VATS::SetMagicTimeSlowdown);
57 REL::Relocation<func_t> func{ RELOCATION_ID(43103, 44300) };
58 return func(this, a_magicTimeSlowdown, a_playerMagicTimeSlowdown);
59 }
60
61 // members
62 std::uint32_t pad00; // 00
65 std::uint32_t pad24; // 24
66 std::uint64_t unk28; // 28
68 float safetyTime; // 38
69 float cameraTime; // 3C
71 std::uint32_t pad44; // 44
72 std::uint64_t unk48; // 48
73 std::uint64_t unk50; // 50
74 std::uint64_t unk58; // 58
75 ImageSpaceModifierInstanceRB* unk60; // 60
76 ImageSpaceModifierInstanceRB* unk68; // 68
78 bool unk78; // 78
79 bool unk79; // 79
80 std::uint16_t pad7A; // 7A
81 std::int32_t unk7C; // 7C
82 float magicTimeSlowdown; // 80
87 std::int32_t unkA0; // A0
88 std::uint32_t padA4; // A4
90 NiPointer<Actor> unkB0; // B0 - stranger?
91 mutable BSSpinLock lock; // B8
92 };
93 static_assert(sizeof(VATS) == 0xC0);
94}
#define RELOCATION_ID(SE, AE)
Definition: PCH.h:711
Definition: BGSCameraShot.h:14
Definition: BSAtomic.h:49
Definition: BSTArray.h:377
Definition: ExtraDataList.h:49
Definition: HitData.h:17
Definition: NiSmartPointer.h:9
Definition: TESBoundObject.h:24
Definition: VATS.h:20
std::uint8_t unk07
Definition: VATS.h:26
std::uint32_t actionPoints
Definition: VATS.h:22
std::uint16_t unk0A
Definition: VATS.h:29
ActorValue bodyPartAV
Definition: VATS.h:31
std::uint8_t unk05
Definition: VATS.h:24
std::uint8_t unk08
Definition: VATS.h:27
std::uint8_t unk06
Definition: VATS.h:25
std::uint64_t unkA8
Definition: VATS.h:34
std::uint8_t unk04
Definition: VATS.h:23
HitData hitData
Definition: VATS.h:33
std::uint32_t unkB0
Definition: VATS.h:35
std::uint32_t pad14
Definition: VATS.h:32
std::uint8_t unk09
Definition: VATS.h:28
ObjectRefHandle targetHandle
Definition: VATS.h:30
Definition: VATS.h:40
float cameraTime
Definition: VATS.h:69
std::uint32_t pad44
Definition: VATS.h:71
NiPointer< Actor > attacker
Definition: VATS.h:89
std::uint64_t unk48
Definition: VATS.h:72
TESBoundObject * item
Definition: VATS.h:84
NiPointer< Actor > unkB0
Definition: VATS.h:90
std::uint32_t pad24
Definition: VATS.h:65
NiPointer< Actor > target
Definition: VATS.h:86
std::uint64_t unk50
Definition: VATS.h:73
ImageSpaceModifierInstanceRB * unk68
Definition: VATS.h:76
BGSCameraShot * cameraShot
Definition: VATS.h:67
std::uint64_t unk28
Definition: VATS.h:66
ExtraDataList * extraList
Definition: VATS.h:85
bool unk78
Definition: VATS.h:78
ImageSpaceModifierInstanceRB * unk60
Definition: VATS.h:75
NiPointer< BSLight > VATSLight
Definition: VATS.h:77
std::int32_t unk7C
Definition: VATS.h:81
bool unk79
Definition: VATS.h:79
float castingAfterKillDelay
Definition: VATS.h:70
void SetMagicTimeSlowdown(float a_magicTimeSlowdown, float a_playerMagicTimeSlowdown)
Definition: VATS.h:54
std::uint32_t padA4
Definition: VATS.h:88
VATS_MODE VATSMode
Definition: VATS.h:64
std::uint64_t unk58
Definition: VATS.h:74
std::uint32_t pad00
Definition: VATS.h:62
std::uint16_t pad7A
Definition: VATS.h:80
static VATS * GetSingleton()
Definition: VATS.h:48
BSSpinLock lock
Definition: VATS.h:91
float magicTimeSlowdown
Definition: VATS.h:82
float playerMagicTimeSlowdown
Definition: VATS.h:83
std::int32_t unkA0
Definition: VATS.h:87
float safetyTime
Definition: VATS.h:68
VATS_MODE
Definition: VATS.h:43
BSTArray< BSTSmartPointer< VATSCommand > > commandList
Definition: VATS.h:63
Definition: Relocation.h:875
Definition: AbsorbEffect.h:6
ActorValue
Definition: ActorValues.h:6
Definition: BSTSingleton.h:50