CommonLibSSE (Parapets fork)
Loading...
Searching...
No Matches
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"
7#include "RE/B/BSResponse.h"
8#include "RE/B/BSTArray.h"
9#include "RE/B/BSTEvent.h"
10#include "RE/B/BSTList.h"
12#include "RE/F/FormTypes.h"
13#include "RE/M/MagicSystem.h"
14#include "RE/N/NiPoint3.h"
15#include "RE/N/NiSmartPointer.h"
16
17namespace RE
18{
19 class ActiveEffect;
20 class BGSAttackData;
21 class BGSPerkEntry;
22 class bhkCharacterController;
23 class bhkRagdollPenetrationUtil;
24 class BSAnimationGraphManager;
25 class BSFaceGenAnimationData;
26 class BSFaceGenNiNode;
27 class BSLightingShaderProperty;
28 class ExtraDataList;
29 class InventoryEntryData;
30 class MagicItem;
31 class NiAVObject;
32 class NiNode;
33 class QueuedFile;
34 class TESBoundObject;
35 struct AnimationVariableData;
36 struct BSAnimationGraphVariableCache;
37
38 enum class RESET_3D_FLAGS
39 {
40 kNone = 0,
41 kModel = 1 << 0,
42 kSkin = 1 << 1,
43 kHead = 1 << 2,
44 kFace = 1 << 3,
45 kScale = 1 << 4,
46 kSkeleton = 1 << 5,
47 kInitDefault = 1 << 6,
48 kSkyCellSkin = 1 << 7
49 };
50
52 {
53 public:
54 // members
56 std::uint32_t pad04; // 04
58 };
59 static_assert(sizeof(CommandedActorData) == 0x10);
60
62 {
63 public:
64 // members
66 std::int32_t count; // 08
67 std::uint32_t pad0C; // 0C
68 const BGSEquipSlot* equipSlot; // 10
69 void* unk18; // 18
70 bool playEquipSounds; // 20
71 bool forceEquip; // 21
72 bool showMessage; // 22
73 bool unk23; // 23
74 bool unk24; // 24
75 std::uint8_t pad25; // 25
76 std::uint16_t pad26; // 26
77 };
78 static_assert(sizeof(ObjectEquipParams) == 0x28);
79
81 {
82 public:
83 // members
88 bool equip; // 40
89 std::uint8_t pad41; // 41
90 std::uint16_t pad42; // 42
91 std::uint32_t pad44; // 44
92 };
93 static_assert(sizeof(QueuedItem) == 0x48);
94
95 class HitData
96 {
97 public:
98 enum class Flag
99 {
100 kBlocked = 1 << 0,
101 kBlockWithWeapon = 1 << 1,
102 kBlockCandidate = 1 << 2,
103 kCritical = 1 << 3,
104 kCriticalOnDeath = 1 << 4,
105 kFatal = 1 << 5,
106 kDismemberLimb = 1 << 6,
107 kExplodeLimb = 1 << 7,
108 kCrippleLimb = 1 << 8,
109 kDisarm = 1 << 9,
110 kDisableWeapon = 1 << 10,
111 kSneakAttack = 1 << 11,
112 kIgnoreCritical = 1 << 12,
113 kPredictDamage = 1 << 13,
114 kPredictBaseDamage = 1 << 14,
115 kBash = 1 << 15,
116 kTimedBash = 1 << 16,
117 kPowerAttack = 1 << 17,
118 kMeleeAttack = 1 << 18,
119 kRicochet = 1 << 19,
120 kExplosion = 1 << 20
121 };
122
123 void Populate(Actor* a_aggressor, Actor* a_target, InventoryEntryData* a_weapon);
124
125 // members
131 std::uint32_t pad24; // 24
134 std::uint64_t unk38; // 38
135 std::uint64_t unk40; // 40
136 std::uint32_t unk48; // 48
137 float healthDamage; // 4C
138 float totalDamage; // 50
139 float physicalDamage; // 54
141 float percentBlocked; // 5C
144 std::uint32_t stagger; // 68
145 float sneakAttackBonus; // 6C
147 float pushBack; // 74
148 float reflectedDamage; // 78
150 Flag flags; // 80
151 std::uint32_t equipIndex; // 84
152 std::uint32_t material; // 88
153 std::uint32_t damageLimb; // 8C
154 };
155 static_assert(sizeof(HitData) == 0x90);
156
158 {
159 public:
160 // members
161 float dismemberTimer; // 00
162 std::uint32_t limbIndex; // 04
166 bool explosion; // 20
167 std::uint8_t pad21; // 21
168 std::uint16_t pad22; // 22
169 std::uint32_t pad24; // 24
170 };
171 static_assert(sizeof(DeferredHideLimb) == 0x28);
172
174 {
175 public:
177 {
178 return operator[](a_pos);
179 }
180
182 {
183 assert(a_pos < BGSEntryPoint::ENTRY_POINT::kTotal);
184 return perkEntryArrays[stl::to_underlying(a_pos)];
185 }
186
187 // members
189 };
190 static_assert(sizeof(AIPerkData) == 0x8A0);
191
193 {
194 public:
204 std::uint32_t bleedoutAttacker; // 0EC
206 std::uint32_t pad0F4; // 0F4
210 std::uint64_t unk148; // 148
217 std::uint64_t unk180; // 180
226 mutable BSSpinLock unk1E8; // 1E8
227 void* unk1F0; // 1F0 - smart ptr
228 std::uint16_t unk1F8; // 1F8
229 std::uint16_t unk1FA; // 1FA
230 std::uint32_t unk1FC; // 1FC
231 std::uint32_t unk200; // 200
232 float headHeightOffset; // 204
234 std::uint32_t unk20C; // 20C
235 std::uint64_t unk210; // 210
237 std::uint32_t pad21C; // 21C
240 void* unk230; // 230 - smart ptr
241 std::uint64_t unk238; // 238
242 std::uint64_t unk240; // 240
243 std::uint64_t unk248; // 248
249 void* unk278; // 278
250 std::uint64_t unk280; // 280
252 std::uint32_t unk290; // 290
253 std::uint32_t currentFurnitureSubgraphID; // 294
254 float unk298; // 298
255 float unk29C; // 29C
256 float unk2A0; // 2A0
257 float unk2A4; // 2A4
258 float unk2A8; // 2A8
259 float unk2AC; // 2AC
260 float unk2B0; // 2B0
261 float unk2B4; // 2B4
262 float unk2B8; // 2B8
263 float unk2BC; // 2BC
264 float unk2C0; // 2C0
265 float unk2C4; // 2C4
266 float alphaMult; // 2C8
267 float scriptRefractPower; // 2CC
268 float unk2D0; // 2D0
269 float deferredKillTimer; // 2D4
270 float killMoveTimer; // 2D8
271 float unk2DC; // 2DC
272 std::uint32_t unk2E0; // 2E0
273 std::uint32_t unk2E4; // 2E4
274 std::uint32_t currentFurnitureMarkerID; // 2E8
275 std::uint32_t unk2EC; // 2EC
276 std::uint64_t unk2F0; // 2F0
277 std::uint32_t unk2F8; // 2F8
278 std::uint32_t unk2FC; // 2FC
279 std::uint32_t unk300; // 300
280 std::uint16_t unk304; // 304
281 std::uint16_t unk306; // 306
282 std::uint64_t unk308; // 308
283 std::uint8_t unk310; // 310
285 std::uint16_t unk312; // 312
286 std::uint16_t unk314; // 314
287 bool unk316; // 316
288 bool unk317; // 317
289 bool unk318; // 318
290 bool unk319; // 319
291 bool unk31A; // 31A
292 bool pickPocketed; // 31B
293 bool summonedCreature; // 31C
294 bool unk31D; // 31D
295 bool unk31E; // 31E
296 bool unk31F; // 31F
297 bool unk320; // 320
298 bool unk321; // 321
299 bool beenAttacked; // 322
300 bool unk323; // 323
301 bool unk324; // 324
302 bool unk325; // 325
303 bool unk326; // 326
304 bool unk327; // 327
305 bool unk328; // 328
306 bool unk329; // 329
307 bool unk32A; // 32A
308 bool unk32B; // 32B
309 bool unk32C; // 32C
310 bool unk32D; // 32D
311 bool unk32E; // 32E
312 bool unk32F; // 32F
313 bool unk330; // 330
314 bool unk331; // 331
315 bool unk332; // 332
316 bool pad333; // 333
317 std::uint32_t pad334; // 334
318 };
319 static_assert(sizeof(MiddleHighProcessData) == 0x338);
320}
Definition: ActiveEffect.h:22
Definition: Actor.h:125
Definition: ActorPackage.h:12
Definition: BGSEquipSlot.h:10
Definition: BSFaceGenNiNode.h:14
Definition: BSTList.h:10
Definition: BSAtomic.h:49
Definition: BSTArray.h:377
Definition: BSTEvent.h:28
Definition: BSTSmartPointer.h:37
Definition: ExtraDataList.h:46
Definition: MiddleHighProcessData.h:96
std::uint32_t material
Definition: MiddleHighProcessData.h:152
float bonusHealthDamageMult
Definition: MiddleHighProcessData.h:146
Flag
Definition: MiddleHighProcessData.h:99
float percentBlocked
Definition: MiddleHighProcessData.h:141
float criticalDamageMult
Definition: MiddleHighProcessData.h:149
NiPoint3 unk0C
Definition: MiddleHighProcessData.h:127
float pushBack
Definition: MiddleHighProcessData.h:147
float resistedPhysicalDamage
Definition: MiddleHighProcessData.h:142
float healthDamage
Definition: MiddleHighProcessData.h:137
std::uint32_t unk48
Definition: MiddleHighProcessData.h:136
float reflectedDamage
Definition: MiddleHighProcessData.h:148
Flag flags
Definition: MiddleHighProcessData.h:150
std::uint64_t unk40
Definition: MiddleHighProcessData.h:135
std::uint32_t damageLimb
Definition: MiddleHighProcessData.h:153
float resistedTypedDamage
Definition: MiddleHighProcessData.h:143
ActorHandle aggressor
Definition: MiddleHighProcessData.h:128
std::uint32_t stagger
Definition: MiddleHighProcessData.h:144
ObjectRefHandle sourceRef
Definition: MiddleHighProcessData.h:130
void Populate(Actor *a_aggressor, Actor *a_target, InventoryEntryData *a_weapon)
std::uint32_t equipIndex
Definition: MiddleHighProcessData.h:151
std::uint32_t pad24
Definition: MiddleHighProcessData.h:131
float sneakAttackBonus
Definition: MiddleHighProcessData.h:145
TESObjectWEAP * weapon
Definition: MiddleHighProcessData.h:133
float targetedLimbDamage
Definition: MiddleHighProcessData.h:140
NiPointer< BGSAttackData > attackData
Definition: MiddleHighProcessData.h:132
float totalDamage
Definition: MiddleHighProcessData.h:138
NiPoint3 unk00
Definition: MiddleHighProcessData.h:126
std::uint64_t unk38
Definition: MiddleHighProcessData.h:134
ActorHandle target
Definition: MiddleHighProcessData.h:129
float physicalDamage
Definition: MiddleHighProcessData.h:139
Definition: InventoryEntryData.h:14
Definition: NiAVObject.h:45
Definition: NiNode.h:12
Definition: NiPoint3.h:6
Definition: NiSmartPointer.h:9
Definition: MiddleHighProcessData.h:81
ObjectEquipParams equipParams
Definition: MiddleHighProcessData.h:86
std::uint8_t pad41
Definition: MiddleHighProcessData.h:89
TESBoundObject * object
Definition: MiddleHighProcessData.h:85
std::uint32_t pad44
Definition: MiddleHighProcessData.h:91
std::uint16_t pad42
Definition: MiddleHighProcessData.h:90
NiPointer< QueuedFile > queuedFiles
Definition: MiddleHighProcessData.h:87
QueuedItem * next
Definition: MiddleHighProcessData.h:84
bool equip
Definition: MiddleHighProcessData.h:88
Definition: TESBoundObject.h:24
Definition: TESIdleForm.h:35
Definition: TESObjectWEAP.h:73
Definition: PCH.h:216
WardState
Definition: MagicSystem.h:79
Definition: AbsorbEffect.h:6
RESET_3D_FLAGS
Definition: MiddleHighProcessData.h:39
constexpr auto to_underlying(Enum a_val) noexcept
Definition: PCH.h:635
Definition: MiddleHighProcessData.h:174
BSTArray< BGSPerkEntry * > perkEntryArrays[BGSEntryPoint::ENTRY_POINTS::kTotal]
Definition: MiddleHighProcessData.h:188
BSTArray< BGSPerkEntry * > & operator[](BGSEntryPoint::ENTRY_POINT a_pos)
Definition: MiddleHighProcessData.h:181
BSTArray< BGSPerkEntry * > & at(BGSEntryPoint::ENTRY_POINT a_pos)
Definition: MiddleHighProcessData.h:176
ENTRY_POINT
Definition: BGSEntryPoint.h:10
@ kTotal
Definition: BGSEntryPoint.h:104
Definition: BSAnimationGraphManager.h:34
Definition: MiddleHighProcessData.h:52
std::uint32_t pad04
Definition: MiddleHighProcessData.h:56
ActorHandle commandedActor
Definition: MiddleHighProcessData.h:55
ActiveEffect * activeEffect
Definition: MiddleHighProcessData.h:57
Definition: MiddleHighProcessData.h:158
std::uint8_t pad21
Definition: MiddleHighProcessData.h:167
NiPointer< NiNode > dismemberedLimbRoot
Definition: MiddleHighProcessData.h:163
std::uint16_t pad22
Definition: MiddleHighProcessData.h:168
NiPointer< NiNode > replacementLimb
Definition: MiddleHighProcessData.h:164
DeferredHideLimb * next
Definition: MiddleHighProcessData.h:165
std::uint32_t pad24
Definition: MiddleHighProcessData.h:169
bool explosion
Definition: MiddleHighProcessData.h:166
std::uint32_t limbIndex
Definition: MiddleHighProcessData.h:162
float dismemberTimer
Definition: MiddleHighProcessData.h:161
Definition: MiddleHighProcessData.h:193
float unk2B8
Definition: MiddleHighProcessData.h:262
float unk2A4
Definition: MiddleHighProcessData.h:257
BSTArray< ActorHandle > deadDetectList
Definition: MiddleHighProcessData.h:197
BSFaceGenNiNode * faceNodeSkinned
Definition: MiddleHighProcessData.h:215
bool unk332
Definition: MiddleHighProcessData.h:315
float unk2B4
Definition: MiddleHighProcessData.h:261
bool unk32B
Definition: MiddleHighProcessData.h:308
void * unk1F0
Definition: MiddleHighProcessData.h:227
NiPointer< bhkCharacterController > charController
Definition: MiddleHighProcessData.h:244
bool unk324
Definition: MiddleHighProcessData.h:301
std::uint32_t unk20C
Definition: MiddleHighProcessData.h:234
float unk2C0
Definition: MiddleHighProcessData.h:264
bool unk319
Definition: MiddleHighProcessData.h:290
bool unk321
Definition: MiddleHighProcessData.h:298
std::uint64_t unk148
Definition: MiddleHighProcessData.h:210
std::uint32_t unk1FC
Definition: MiddleHighProcessData.h:230
TESIdleForm * furnitureIdle
Definition: MiddleHighProcessData.h:239
BSSimpleList< ActiveEffect * > * activeEffects
Definition: MiddleHighProcessData.h:221
bool unk32F
Definition: MiddleHighProcessData.h:312
bool unk31E
Definition: MiddleHighProcessData.h:295
BSSimpleList< TESObjectREFR * > refListChairBed
Definition: MiddleHighProcessData.h:198
std::uint64_t unk210
Definition: MiddleHighProcessData.h:235
ActorHandle commandingActor
Definition: MiddleHighProcessData.h:236
std::uint32_t unk2E4
Definition: MiddleHighProcessData.h:273
bool pad333
Definition: MiddleHighProcessData.h:316
MagicSystem::WardState wardState
Definition: MiddleHighProcessData.h:205
bool unk318
Definition: MiddleHighProcessData.h:289
QueuedItem * itemstoEquipUnequip
Definition: MiddleHighProcessData.h:218
std::uint16_t unk1FA
Definition: MiddleHighProcessData.h:229
bool unk316
Definition: MiddleHighProcessData.h:287
std::uint64_t unk240
Definition: MiddleHighProcessData.h:242
float unk2AC
Definition: MiddleHighProcessData.h:259
float unk2C4
Definition: MiddleHighProcessData.h:265
std::uint16_t unk304
Definition: MiddleHighProcessData.h:280
std::uint64_t unk280
Definition: MiddleHighProcessData.h:250
float unk2B0
Definition: MiddleHighProcessData.h:260
NiAVObject * faceTargetSourceNode
Definition: MiddleHighProcessData.h:214
bool unk326
Definition: MiddleHighProcessData.h:303
float unk2D0
Definition: MiddleHighProcessData.h:268
bool pickPocketed
Definition: MiddleHighProcessData.h:292
NiPoint3 actorMountPosition
Definition: MiddleHighProcessData.h:201
bool unk31D
Definition: MiddleHighProcessData.h:294
std::uint8_t unk310
Definition: MiddleHighProcessData.h:283
std::uint32_t pad21C
Definition: MiddleHighProcessData.h:237
DeferredHideLimb * headDeferredHideLimb
Definition: MiddleHighProcessData.h:220
BSTEventSource< void * > unk000
Definition: MiddleHighProcessData.h:195
bool unk331
Definition: MiddleHighProcessData.h:314
ActorPackage runOncePackage
Definition: MiddleHighProcessData.h:196
float unk2A8
Definition: MiddleHighProcessData.h:258
InventoryEntryData * rightHand
Definition: MiddleHighProcessData.h:246
bool unk328
Definition: MiddleHighProcessData.h:305
std::uint32_t bleedoutAttacker
Definition: MiddleHighProcessData.h:204
ObjectRefHandle occupiedFurniture
Definition: MiddleHighProcessData.h:233
NiPoint3 furniturePathPoint
Definition: MiddleHighProcessData.h:202
bool unk323
Definition: MiddleHighProcessData.h:300
std::uint64_t unk248
Definition: MiddleHighProcessData.h:243
std::uint64_t unk308
Definition: MiddleHighProcessData.h:282
InventoryEntryData * leftHand
Definition: MiddleHighProcessData.h:238
NiNode * weaponBone
Definition: MiddleHighProcessData.h:211
std::uint32_t unk2EC
Definition: MiddleHighProcessData.h:275
float unk298
Definition: MiddleHighProcessData.h:254
BSTArray< void * > unk1B8
Definition: MiddleHighProcessData.h:224
float unk2DC
Definition: MiddleHighProcessData.h:271
BSTSmartPointer< BSAnimationGraphManager > animationGraphManager
Definition: MiddleHighProcessData.h:222
float unk2BC
Definition: MiddleHighProcessData.h:263
bool unk329
Definition: MiddleHighProcessData.h:306
bool unk330
Definition: MiddleHighProcessData.h:313
std::uint16_t unk314
Definition: MiddleHighProcessData.h:286
bool unk317
Definition: MiddleHighProcessData.h:288
float deferredKillTimer
Definition: MiddleHighProcessData.h:269
NiAVObject * headNode
Definition: MiddleHighProcessData.h:212
std::uint16_t unk306
Definition: MiddleHighProcessData.h:281
std::uint32_t unk2E0
Definition: MiddleHighProcessData.h:272
std::uint64_t unk180
Definition: MiddleHighProcessData.h:217
std::uint32_t pad334
Definition: MiddleHighProcessData.h:317
BSTSmartPointer< bhkRagdollPenetrationUtil > penetrationDetectUtil
Definition: MiddleHighProcessData.h:245
InventoryEntryData * bothHands
Definition: MiddleHighProcessData.h:247
bool unk32C
Definition: MiddleHighProcessData.h:309
BSTArray< void * > unk1D0
Definition: MiddleHighProcessData.h:225
NiAVObject * torsoNode
Definition: MiddleHighProcessData.h:213
std::uint32_t unk2FC
Definition: MiddleHighProcessData.h:278
AIPerkData * perkData
Definition: MiddleHighProcessData.h:251
std::uint32_t pad0F4
Definition: MiddleHighProcessData.h:206
BSAnimationGraphVariableCache * animationVariableCache
Definition: MiddleHighProcessData.h:223
std::uint32_t currentFurnitureSubgraphID
Definition: MiddleHighProcessData.h:253
void * unk278
Definition: MiddleHighProcessData.h:249
bool unk32D
Definition: MiddleHighProcessData.h:310
std::uint32_t unk290
Definition: MiddleHighProcessData.h:252
std::uint32_t unk300
Definition: MiddleHighProcessData.h:279
float killMoveTimer
Definition: MiddleHighProcessData.h:270
std::uint64_t unk2F0
Definition: MiddleHighProcessData.h:276
bool beenAttacked
Definition: MiddleHighProcessData.h:299
bool unk320
Definition: MiddleHighProcessData.h:297
float unk29C
Definition: MiddleHighProcessData.h:255
bool unk32A
Definition: MiddleHighProcessData.h:307
bool unk31F
Definition: MiddleHighProcessData.h:296
NiPoint3 rotation
Definition: MiddleHighProcessData.h:199
std::uint32_t unk2F8
Definition: MiddleHighProcessData.h:277
float alphaMult
Definition: MiddleHighProcessData.h:266
std::uint32_t currentFurnitureMarkerID
Definition: MiddleHighProcessData.h:274
std::uint32_t unk200
Definition: MiddleHighProcessData.h:231
float scriptRefractPower
Definition: MiddleHighProcessData.h:267
stl::enumeration< RESET_3D_FLAGS, std::uint8_t > update3DModel
Definition: MiddleHighProcessData.h:284
bool unk32E
Definition: MiddleHighProcessData.h:311
BSTSmartPointer< AnimResponse > animResponse
Definition: MiddleHighProcessData.h:207
bool unk31A
Definition: MiddleHighProcessData.h:291
NiPointer< BSLightingShaderProperty > lightingProperty
Definition: MiddleHighProcessData.h:216
NiPointer< QueuedFile > bodyPartPreload
Definition: MiddleHighProcessData.h:248
bool summonedCreature
Definition: MiddleHighProcessData.h:293
std::uint64_t unk238
Definition: MiddleHighProcessData.h:241
NiPoint3 lastSeenPosition
Definition: MiddleHighProcessData.h:203
void * unk230
Definition: MiddleHighProcessData.h:240
float headHeightOffset
Definition: MiddleHighProcessData.h:232
float unk2A0
Definition: MiddleHighProcessData.h:256
bool unk325
Definition: MiddleHighProcessData.h:302
std::uint16_t unk312
Definition: MiddleHighProcessData.h:285
NiNode * damageRootNode[6]
Definition: MiddleHighProcessData.h:209
BSSpinLock unk1E8
Definition: MiddleHighProcessData.h:226
std::uint16_t unk1F8
Definition: MiddleHighProcessData.h:228
HitData * lastHitData
Definition: MiddleHighProcessData.h:219
bool unk327
Definition: MiddleHighProcessData.h:304
BSTArray< CommandedActorData > commandedActors
Definition: MiddleHighProcessData.h:208
NiPoint3 rotationSpeed
Definition: MiddleHighProcessData.h:200
Definition: MiddleHighProcessData.h:62
void * unk18
Definition: MiddleHighProcessData.h:69
bool showMessage
Definition: MiddleHighProcessData.h:72
std::uint32_t pad0C
Definition: MiddleHighProcessData.h:67
bool playEquipSounds
Definition: MiddleHighProcessData.h:70
bool unk23
Definition: MiddleHighProcessData.h:73
ExtraDataList * extraDataList
Definition: MiddleHighProcessData.h:65
std::uint16_t pad26
Definition: MiddleHighProcessData.h:76
std::uint8_t pad25
Definition: MiddleHighProcessData.h:75
std::int32_t count
Definition: MiddleHighProcessData.h:66
bool unk24
Definition: MiddleHighProcessData.h:74
const BGSEquipSlot * equipSlot
Definition: MiddleHighProcessData.h:68
bool forceEquip
Definition: MiddleHighProcessData.h:71