CommonLibVR
MiddleHighProcessData.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/A/ActorPackage.h"
4 #include "RE/B/BGSPerkEntry.h"
5 #include "RE/B/BSAtomic.h"
6 #include "RE/B/BSPointerHandle.h"
7 #include "RE/B/BSResponse.h"
8 #include "RE/B/BSTArray.h"
9 #include "RE/B/BSTEvent.h"
10 #include "RE/B/BSTList.h"
11 #include "RE/B/BSTSmartPointer.h"
12 #include "RE/F/FormTypes.h"
13 #include "RE/H/HitData.h"
14 #include "RE/M/MagicSystem.h"
15 #include "RE/N/NiPoint3.h"
16 #include "RE/N/NiSmartPointer.h"
17 
18 namespace RE
19 {
20  class ActiveEffect;
21  class BGSAttackData;
22  class BGSPerkEntry;
23  class bhkCharacterController;
24  class bhkRagdollPenetrationUtil;
25  class BSAnimationGraphManager;
26  class BSCloneReserver;
27  class BSFaceGenAnimationData;
28  class BSFaceGenNiNode;
29  class BSLightingShaderProperty;
30  class ExtraDataList;
31  class InventoryEntryData;
32  class MagicItem;
33  class NiAVObject;
34  class NiNode;
35  class QueuedFile;
36  class TESBoundObject;
37  struct AnimationVariableData;
38  struct BSAnimationGraphVariableCache;
39 
40  enum class RESET_3D_FLAGS
41  {
42  kNone = 0,
43  kModel = 1 << 0,
44  kSkin = 1 << 1,
45  kHead = 1 << 2,
46  kFace = 1 << 3,
47  kScale = 1 << 4,
48  kSkeleton = 1 << 5,
49  kInitDefault = 1 << 6,
50  kSkyCellSkin = 1 << 7
51  };
52 
54  {
55  public:
56  // members
58  std::uint32_t pad04; // 04
60  };
61  static_assert(sizeof(CommandedActorData) == 0x10);
62 
64  {
65  public:
66  // members
68  std::int32_t count; // 08
69  std::uint32_t pad0C; // 0C
70  const BGSEquipSlot* equipSlot; // 10
71  void* unk18; // 18
72  bool playEquipSounds; // 20
73  bool forceEquip; // 21
74  bool showMessage; // 22
75  bool unk23; // 23
76  bool unk24; // 24
77  std::uint8_t pad25; // 25
78  std::uint16_t pad26; // 26
79  };
80  static_assert(sizeof(ObjectEquipParams) == 0x28);
81 
82  class QueuedItem
83  {
84  public:
85  // members
86  QueuedItem* next; // 00
90  bool equip; // 40
91  std::uint8_t pad41; // 41
92  std::uint16_t pad42; // 42
93  std::uint32_t pad44; // 44
94  private:
95  KEEP_FOR_RE()
96  };
97  static_assert(sizeof(QueuedItem) == 0x48);
98 
100  {
101  public:
102  // members
103  float dismemberTimer; // 00
104  std::uint32_t limbIndex; // 04
108  bool explosion; // 20
109  std::uint8_t pad21; // 21
110  std::uint16_t pad22; // 22
111  std::uint32_t pad24; // 24
112  };
113  static_assert(sizeof(DeferredHideLimb) == 0x28);
114 
115  struct AIPerkData
116  {
117  public:
119  {
120  return operator[](a_pos);
121  }
122 
124  {
125  assert(a_pos < BGSEntryPoint::ENTRY_POINT::kTotal);
126  return perkEntryArrays[std::to_underlying(a_pos)];
127  }
128 
129  // members
131  };
132  static_assert(sizeof(AIPerkData) == 0x8A0);
133 
135  {
136  public:
146  std::uint32_t bleedoutAttacker; // 0EC
148  std::uint32_t pad0F4; // 0F4
151  NiNode* damageRootNode[6]; // 118
159  std::uint64_t unk180; // 180
168  mutable BSSpinLock unk1E8; // 1E8
169  void* unk1F0; // 1F0 - smart ptr
170  std::uint16_t unk1F8; // 1F8
171  std::uint16_t unk1FA; // 1FA
172  std::uint32_t unk1FC; // 1FC
173  std::uint32_t unk200; // 200
174  float headHeightOffset; // 204
176  std::uint32_t unk20C; // 20C
179  std::uint32_t pad21C; // 21C
182  void* unk230; // 230 - smart ptr
185  std::uint64_t unk248; // 248
194  std::uint32_t unk290; // 290
195  std::uint32_t currentFurnitureSubgraphID; // 294
196  float unk298; // 298
197  float unk29C; // 29C
198  float unk2A0; // 2A0
199  float unk2A4; // 2A4
200  float currentMovementSpeed; // 2A8
201  float unk2AC; // 2AC
202  float unk2B0; // 2B0
203  float bleedoutRate; // 2B4
204  float unk2B8; // 2B8
205  float maximumWardPower; // 2BC
206  float unk2C0; // 2C0
207  float torchEvaluationTimer; // 2C4
208  float alphaMult; // 2C8
209  float scriptRefractPower; // 2CC
210  float unk2D0; // 2D0
211  float deferredKillTimer; // 2D4
212  float killMoveTimer; // 2D8
213  float unk2DC; // 2DC
214  std::uint32_t unk2E0; // 2E0
215  std::uint32_t unk2E4; // 2E4
216  std::uint32_t currentFurnitureMarkerID; // 2E8
217  std::uint32_t unk2EC; // 2EC
218  std::uint64_t unk2F0; // 2F0
219  std::uint32_t unk2F8; // 2F8
220  std::uint32_t unk2FC; // 2FC
221  std::uint32_t unk300; // 300
222  std::uint16_t unk304; // 304
223  std::uint16_t unk306; // 306
224  std::uint64_t unk308; // 308
225  std::uint8_t unk310; // 310
227  std::uint16_t unk312; // 312
228  std::uint16_t unk314; // 314
229  bool unk316; // 316
230  bool unk317; // 317
231  bool unk318; // 318
232  bool unk319; // 319
233  bool unk31A; // 31A
234  bool pickPocketed; // 31B
235  bool summonedCreature; // 31C
236  bool forceNextUpdate; // 31D
237  bool unk31E; // 31E
238  bool unk31F; // 31F
239  bool unk320; // 320
240  bool unk321; // 321
241  bool beenAttacked; // 322
242  bool alwaysHit; // 323
243  bool doNoDamage; // 324
244  bool soulTrapped; // 325
245  bool unk326; // 326
246  bool unk327; // 327
247  bool unk328; // 328
248  bool preventCombat; // 329
249  bool unk32A; // 32A
250  bool isFleeing; // 32B
251  bool unk32C; // 32C
252  bool hostileGuard; // 32D
253  bool unk32E; // 32E
254  bool unk32F; // 32F
255  bool unk330; // 330
256  bool killQueued; // 331
257  bool inDeferredKill; // 332
258  bool pad333; // 333
259  std::uint32_t pad334; // 334
260  };
261  static_assert(sizeof(MiddleHighProcessData) == 0x338);
262 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: ActiveEffect.h:27
Definition: ActorPackage.h:12
Definition: BGSEquipSlot.h:10
Definition: BSFaceGenAnimationData.h:11
Definition: BSFaceGenNiNode.h:14
Definition: BSTList.h:10
Definition: BSAtomic.h:92
Definition: BSTArray.h:378
Definition: BSTSmartPointer.h:37
Definition: ExtraDataList.h:51
Definition: HitData.h:17
Definition: InventoryEntryData.h:15
Definition: MagicItem.h:30
Definition: NiAVObject.h:57
Definition: NiNode.h:12
Definition: NiPoint3.h:6
Definition: MiddleHighProcessData.h:83
ObjectEquipParams equipParams
Definition: MiddleHighProcessData.h:88
std::uint8_t pad41
Definition: MiddleHighProcessData.h:91
TESBoundObject * object
Definition: MiddleHighProcessData.h:87
std::uint32_t pad44
Definition: MiddleHighProcessData.h:93
std::uint16_t pad42
Definition: MiddleHighProcessData.h:92
NiPointer< QueuedFile > queuedFiles
Definition: MiddleHighProcessData.h:89
QueuedItem * next
Definition: MiddleHighProcessData.h:86
bool equip
Definition: MiddleHighProcessData.h:90
Definition: TESBoundObject.h:26
Definition: TESIdleForm.h:37
WardState
Definition: MagicSystem.h:87
Definition: AbsorbEffect.h:6
RESET_3D_FLAGS
Definition: MiddleHighProcessData.h:41
@ kNone
Definition: MiddleHighProcessData.h:116
BSTArray< BGSPerkEntry * > perkEntryArrays[BGSEntryPoint::ENTRY_POINTS::kTotal]
Definition: MiddleHighProcessData.h:130
BSTArray< BGSPerkEntry * > & at(BGSEntryPoint::ENTRY_POINT a_pos)
Definition: MiddleHighProcessData.h:118
BSTArray< BGSPerkEntry * > & operator[](BGSEntryPoint::ENTRY_POINT a_pos)
Definition: MiddleHighProcessData.h:123
ENTRY_POINT
Definition: BGSEntryPoint.h:14
@ kTotal
Definition: BGSEntryPoint.h:108
Definition: BSAnimationGraphManager.h:34
Definition: MiddleHighProcessData.h:54
std::uint32_t pad04
Definition: MiddleHighProcessData.h:58
ActorHandle commandedActor
Definition: MiddleHighProcessData.h:57
ActiveEffect * activeEffect
Definition: MiddleHighProcessData.h:59
Definition: MiddleHighProcessData.h:100
std::uint8_t pad21
Definition: MiddleHighProcessData.h:109
NiPointer< NiNode > dismemberedLimbRoot
Definition: MiddleHighProcessData.h:105
std::uint16_t pad22
Definition: MiddleHighProcessData.h:110
NiPointer< NiNode > replacementLimb
Definition: MiddleHighProcessData.h:106
DeferredHideLimb * next
Definition: MiddleHighProcessData.h:107
std::uint32_t pad24
Definition: MiddleHighProcessData.h:111
bool explosion
Definition: MiddleHighProcessData.h:108
std::uint32_t limbIndex
Definition: MiddleHighProcessData.h:104
float dismemberTimer
Definition: MiddleHighProcessData.h:103
Definition: MiddleHighProcessData.h:135
float unk2B8
Definition: MiddleHighProcessData.h:204
float unk2A4
Definition: MiddleHighProcessData.h:199
BSTArray< ActorHandle > deadDetectList
Definition: MiddleHighProcessData.h:139
BSFaceGenNiNode * faceNodeSkinned
Definition: MiddleHighProcessData.h:157
void * unk1F0
Definition: MiddleHighProcessData.h:169
NiPointer< bhkCharacterController > charController
Definition: MiddleHighProcessData.h:186
std::uint32_t unk20C
Definition: MiddleHighProcessData.h:176
float unk2C0
Definition: MiddleHighProcessData.h:206
bool unk319
Definition: MiddleHighProcessData.h:232
MagicItem * currentPackageSpell
Definition: MiddleHighProcessData.h:184
bool unk321
Definition: MiddleHighProcessData.h:240
std::uint32_t unk1FC
Definition: MiddleHighProcessData.h:172
BSFaceGenAnimationData * faceAnimationData
Definition: MiddleHighProcessData.h:183
TESIdleForm * furnitureIdle
Definition: MiddleHighProcessData.h:181
BSSimpleList< ActiveEffect * > * activeEffects
Definition: MiddleHighProcessData.h:163
bool unk32F
Definition: MiddleHighProcessData.h:254
TESIdleForm * unk210
Definition: MiddleHighProcessData.h:177
bool unk31E
Definition: MiddleHighProcessData.h:237
BSSimpleList< TESObjectREFR * > refListChairBed
Definition: MiddleHighProcessData.h:140
ActorHandle commandingActor
Definition: MiddleHighProcessData.h:178
std::uint32_t unk2E4
Definition: MiddleHighProcessData.h:215
bool hostileGuard
Definition: MiddleHighProcessData.h:252
bool pad333
Definition: MiddleHighProcessData.h:258
MagicSystem::WardState wardState
Definition: MiddleHighProcessData.h:147
bool unk318
Definition: MiddleHighProcessData.h:231
QueuedItem * itemstoEquipUnequip
Definition: MiddleHighProcessData.h:160
std::uint16_t unk1FA
Definition: MiddleHighProcessData.h:171
bool unk316
Definition: MiddleHighProcessData.h:229
float unk2AC
Definition: MiddleHighProcessData.h:201
std::uint16_t unk304
Definition: MiddleHighProcessData.h:222
float unk2B0
Definition: MiddleHighProcessData.h:202
NiAVObject * faceTargetSourceNode
Definition: MiddleHighProcessData.h:156
bool unk326
Definition: MiddleHighProcessData.h:245
float unk2D0
Definition: MiddleHighProcessData.h:210
bool alwaysHit
Definition: MiddleHighProcessData.h:242
bool pickPocketed
Definition: MiddleHighProcessData.h:234
TESIdleForm * lastIdlePlayed
Definition: MiddleHighProcessData.h:192
NiPoint3 actorMountPosition
Definition: MiddleHighProcessData.h:143
std::uint8_t unk310
Definition: MiddleHighProcessData.h:225
NiPointer< BSCloneReserver > unk278
Definition: MiddleHighProcessData.h:191
std::uint32_t pad21C
Definition: MiddleHighProcessData.h:179
DeferredHideLimb * headDeferredHideLimb
Definition: MiddleHighProcessData.h:162
BSTEventSource< void * > unk000
Definition: MiddleHighProcessData.h:137
ActorPackage runOncePackage
Definition: MiddleHighProcessData.h:138
InventoryEntryData * rightHand
Definition: MiddleHighProcessData.h:188
bool unk328
Definition: MiddleHighProcessData.h:247
std::uint32_t bleedoutAttacker
Definition: MiddleHighProcessData.h:146
ObjectRefHandle occupiedFurniture
Definition: MiddleHighProcessData.h:175
NiPoint3 furniturePathPoint
Definition: MiddleHighProcessData.h:144
std::uint64_t unk248
Definition: MiddleHighProcessData.h:185
std::uint64_t unk308
Definition: MiddleHighProcessData.h:224
InventoryEntryData * leftHand
Definition: MiddleHighProcessData.h:180
NiNode * weaponBone
Definition: MiddleHighProcessData.h:153
std::uint32_t unk2EC
Definition: MiddleHighProcessData.h:217
float unk298
Definition: MiddleHighProcessData.h:196
BSTArray< void * > unk1B8
Definition: MiddleHighProcessData.h:166
float unk2DC
Definition: MiddleHighProcessData.h:213
BSTSmartPointer< BSAnimationGraphManager > animationGraphManager
Definition: MiddleHighProcessData.h:164
bool killQueued
Definition: MiddleHighProcessData.h:256
bool soulTrapped
Definition: MiddleHighProcessData.h:244
bool unk330
Definition: MiddleHighProcessData.h:255
std::uint16_t unk314
Definition: MiddleHighProcessData.h:228
bool unk317
Definition: MiddleHighProcessData.h:230
float deferredKillTimer
Definition: MiddleHighProcessData.h:211
NiAVObject * headNode
Definition: MiddleHighProcessData.h:154
std::uint16_t unk306
Definition: MiddleHighProcessData.h:223
std::uint32_t unk2E0
Definition: MiddleHighProcessData.h:214
std::uint64_t unk180
Definition: MiddleHighProcessData.h:159
std::uint32_t pad334
Definition: MiddleHighProcessData.h:259
BSTSmartPointer< bhkRagdollPenetrationUtil > penetrationDetectUtil
Definition: MiddleHighProcessData.h:187
InventoryEntryData * bothHands
Definition: MiddleHighProcessData.h:189
bool inDeferredKill
Definition: MiddleHighProcessData.h:257
bool unk32C
Definition: MiddleHighProcessData.h:251
float maximumWardPower
Definition: MiddleHighProcessData.h:205
BSTArray< void * > unk1D0
Definition: MiddleHighProcessData.h:167
NiAVObject * torsoNode
Definition: MiddleHighProcessData.h:155
std::uint32_t unk2FC
Definition: MiddleHighProcessData.h:220
AIPerkData * perkData
Definition: MiddleHighProcessData.h:193
std::uint32_t pad0F4
Definition: MiddleHighProcessData.h:148
BSAnimationGraphVariableCache * animationVariableCache
Definition: MiddleHighProcessData.h:165
std::uint32_t currentFurnitureSubgraphID
Definition: MiddleHighProcessData.h:195
std::uint32_t unk290
Definition: MiddleHighProcessData.h:194
std::uint32_t unk300
Definition: MiddleHighProcessData.h:221
float killMoveTimer
Definition: MiddleHighProcessData.h:212
std::uint64_t unk2F0
Definition: MiddleHighProcessData.h:218
bool beenAttacked
Definition: MiddleHighProcessData.h:241
bool preventCombat
Definition: MiddleHighProcessData.h:248
bool unk320
Definition: MiddleHighProcessData.h:239
float unk29C
Definition: MiddleHighProcessData.h:197
bool unk32A
Definition: MiddleHighProcessData.h:249
bool unk31F
Definition: MiddleHighProcessData.h:238
NiPoint3 rotation
Definition: MiddleHighProcessData.h:141
bool forceNextUpdate
Definition: MiddleHighProcessData.h:236
std::uint32_t unk2F8
Definition: MiddleHighProcessData.h:219
float alphaMult
Definition: MiddleHighProcessData.h:208
bool doNoDamage
Definition: MiddleHighProcessData.h:243
std::uint32_t currentFurnitureMarkerID
Definition: MiddleHighProcessData.h:216
std::uint32_t unk200
Definition: MiddleHighProcessData.h:173
NiAVObject * unk148
Definition: MiddleHighProcessData.h:152
float scriptRefractPower
Definition: MiddleHighProcessData.h:209
stl::enumeration< RESET_3D_FLAGS, std::uint8_t > update3DModel
Definition: MiddleHighProcessData.h:226
bool unk32E
Definition: MiddleHighProcessData.h:253
BSTSmartPointer< AnimResponse > animResponse
Definition: MiddleHighProcessData.h:149
bool unk31A
Definition: MiddleHighProcessData.h:233
NiPointer< BSLightingShaderProperty > lightingProperty
Definition: MiddleHighProcessData.h:158
NiPointer< QueuedFile > bodyPartPreload
Definition: MiddleHighProcessData.h:190
float currentMovementSpeed
Definition: MiddleHighProcessData.h:200
bool summonedCreature
Definition: MiddleHighProcessData.h:235
NiPoint3 lastSeenPosition
Definition: MiddleHighProcessData.h:145
void * unk230
Definition: MiddleHighProcessData.h:182
float bleedoutRate
Definition: MiddleHighProcessData.h:203
float headHeightOffset
Definition: MiddleHighProcessData.h:174
float unk2A0
Definition: MiddleHighProcessData.h:198
std::uint16_t unk312
Definition: MiddleHighProcessData.h:227
bool isFleeing
Definition: MiddleHighProcessData.h:250
NiNode * damageRootNode[6]
Definition: MiddleHighProcessData.h:151
BSSpinLock unk1E8
Definition: MiddleHighProcessData.h:168
float torchEvaluationTimer
Definition: MiddleHighProcessData.h:207
std::uint16_t unk1F8
Definition: MiddleHighProcessData.h:170
HitData * lastHitData
Definition: MiddleHighProcessData.h:161
bool unk327
Definition: MiddleHighProcessData.h:246
BSTArray< CommandedActorData > commandedActors
Definition: MiddleHighProcessData.h:150
NiPoint3 rotationSpeed
Definition: MiddleHighProcessData.h:142
Definition: MiddleHighProcessData.h:64
void * unk18
Definition: MiddleHighProcessData.h:71
bool showMessage
Definition: MiddleHighProcessData.h:74
std::uint32_t pad0C
Definition: MiddleHighProcessData.h:69
bool playEquipSounds
Definition: MiddleHighProcessData.h:72
bool unk23
Definition: MiddleHighProcessData.h:75
ExtraDataList * extraDataList
Definition: MiddleHighProcessData.h:67
std::uint16_t pad26
Definition: MiddleHighProcessData.h:78
std::uint8_t pad25
Definition: MiddleHighProcessData.h:77
std::int32_t count
Definition: MiddleHighProcessData.h:68
bool unk24
Definition: MiddleHighProcessData.h:76
const BGSEquipSlot * equipSlot
Definition: MiddleHighProcessData.h:70
bool forceEquip
Definition: MiddleHighProcessData.h:73