-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathMiscStructs.h
88 lines (76 loc) · 2.57 KB
/
MiscStructs.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#pragma once
#include "f4sE_common/Relocation.h"
#include "F4SE_common/SafeWrite.h"
#include "f4se/GameReferences.h"
#include "f4se/GameObjects.h"
namespace F4VRBody {
extern RelocAddr<uintptr_t> NEW_REFR_DATA_VTABLE;
// adapted from Commonlib
class __declspec(novtable) NEW_REFR_DATA
{
public:
NEW_REFR_DATA()
{
vtable = NEW_REFR_DATA_VTABLE;
}
// members
uintptr_t vtable; // 00
NiPoint3 location; // 08
NiPoint3 direction; // 14
TESBoundObject* object{ nullptr }; // 20
TESObjectCELL* interior{ nullptr }; // 28
TESWorldSpace* world{ nullptr }; // 30
TESObjectREFR* reference{ nullptr }; // 38
void* addPrimitive{ nullptr }; // 40
void* additionalData{ nullptr }; // 48
ExtraDataList* extra{ nullptr }; // 50
void* instanceFilter{ nullptr }; // 58
BGSObjectInstanceExtra* modExtra{ nullptr }; // 60
std::uint16_t maxLevel{ 0 }; // 68
bool forcePersist{ false }; // 6A
bool clearStillLoadingFlag{ false }; // 6B
bool initializeScripts{ true }; // 6C
bool initiallyDisabled{ false }; // 6D
};
static_assert(sizeof(NEW_REFR_DATA) == 0x70);
class BGSEquipIndex
{
public:
~BGSEquipIndex() noexcept {} // NOLINT(modernize-use-equals-default)
// members
std::uint32_t index; // 0
};
static_assert(sizeof(BGSEquipIndex) == 0x4);
typedef void*(*_BGSObjectInstance_CTOR)(void* instance, TESForm* a_form, TBO_InstanceData* a_instanceData);
extern RelocAddr<_BGSObjectInstance_CTOR> BGSObjectInstance_CTOR;
class BGSObjectInstance
{
public:
BGSObjectInstance(TESForm* a_object, TBO_InstanceData* a_instanceData)
{
ctor(a_object, a_instanceData);
}
// members
TESForm* object{ nullptr }; // 00
TBO_InstanceData* instanceData; // 08
private:
BGSObjectInstance* ctor(TESForm* a_object, TBO_InstanceData* a_instanceData)
{
return (BGSObjectInstance*)BGSObjectInstance_CTOR((void*)this, a_object, a_instanceData);
}
};
static_assert(sizeof(BGSObjectInstance) == 0x10);
class hknpMotionPropertiesId
{
public:
enum Preset
{
STATIC = 0, ///< No velocity allowed
DYNAMIC, ///< For regular dynamic bodies, undamped and gravity factor = 1
KEYFRAMED, ///< like DYNAMIC, but gravity factor = 0
FROZEN, ///< like KEYFRAMED, but lots of damping
DEBRIS, ///< like DYNAMIC, but aggressive deactivation
NUM_PRESETS
};
};
}