-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGameObjects.h
1703 lines (1610 loc) · 43 KB
/
GameObjects.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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#pragma once
#include "GameForms.h"
#include "GameBSExtraData.h"
#if RUNTIME
static const UInt32 kTESObjectREFR_IsOffLimitsToPlayerAddr = 0x004DEBF0;
#else
static const UInt32 kTESObjectREFR_IsOffLimitsToPlayerAddr = 0;
#endif
enum
{
kSitSleepState_Normal = 0x0,
kSitSleepState_LoadSitIdle = 0x1,
kSitSleepState_WantToSit = 0x2,
kSitSleepState_WaitingForSitAnim = 0x3,
kSitSleepState_Sitting = 0x4,
kSitSleepState_WantToStand = 0x5,
kSitSleepState_LoadingSleepIdle = 0x6,
kSitSleepState_WantToSleep = 0x7,
kSitSleepState_WaitingForSleepAnim = 0x8,
kSitSleepState_Sleeping = 0x9,
kSitSleepState_WantToWake = 0xA,
};
class Actor;
// 010
class MagicTarget
{
public:
MagicTarget();
~MagicTarget();
UInt32 vtabl;
UInt32 unk004[3]; // 004
};
STATIC_ASSERT(sizeof(MagicTarget) == 0x010);
class TESPackageData
{
public:
TESPackageData();
~TESPackageData();
virtual void Destroy(bool free);
virtual void CopyFrom(TESPackageData* packageData);
virtual void Unk_02(void);
virtual void Save(ModInfo* modInfo);
virtual void Unk_04(void);
virtual void Unk_05(void);
virtual void Unk_06(void);
virtual void Unk_07(void);
};
enum PACKAGE_OBJECT_TYPE : UInt32
{
POTYPE_NONE = 0x0,
POTYPE_ACTI = 0x1,
POTYPE_ARMO = 0x2,
POTYPE_BOOK = 0x3,
POTYPE_CLOT_DEPRECATED = 0x4,
POTYPE_CONT = 0x5,
POTYPE_DOOR = 0x6,
POTYPE_INGR = 0x7,
POTYPE_LIGH = 0x8,
POTYPE_MISC = 0x9,
POTYPE_FLOR = 0xA,
POTYPE_FURN = 0xB,
POTYPE_WEAP = 0xC,
POTYPE_AMMO = 0xD,
POTYPE_NPC_ = 0xE,
POTYPE_CREA = 0xF,
POTYPE_KEYM = 0x10,
POTYPE_ALCH = 0x11,
POTYPE_FOOD = 0x12,
POTYPE_CLOT = 0x13,
POTYPE_WEAR = 0x14,
POTYPE_15 = 0x15,
POTYPE_WEAP_MELEE = 0x16,
POTYPE_WEAP_RANGED = 0x17,
POTYPE_ACTOR_EFFECT = 0x18,
POTYPE_19 = 0x19,
POTYPE_1A = 0x1A,
POTYPE_1B = 0x1B,
POTYPE_ACTOR = 0x1C,
};
struct PackageInfo
{
TESPackage* package; // 00
TESPackageData* packageData; // 04
TESObjectREFR* targetRef; // 08
UInt32 unk0C; // 0C Initialized to 0FFFFFFFFh, set to 0 on start
float unk10; // 10 Initialized to -1.0 . Set to GameHour on start so some time
UInt32 flags; // 14 Flags, bit0 would be not created and initialized
};
class BaseProcess
{
public:
BaseProcess();
~BaseProcess();
struct CachedValues
{
enum
{
kCached_Radius = 0x1,
kCached_WidthX = 0x2,
kCached_WidthY = 0x4,
kCached_DPS = 0x8,
kCached_MedicineSkillMult = 0x10,
kCached_Paralysis = 0x20,
kCached_HealRate = 0x40,
kCached_FatigueReturnRate = 0x80,
kCached_PerceptionCondition = 0x100,
kCached_EyeHeight = 0x200,
kCached_SomethingShouldAttack = 0x400,
kCached_WalkSpeed = 0x1000,
kCached_RunSpeed = 0x2000,
kCached_NoCrippledLegs = 0x4000,
kCached_Height = 0x8000,
kCached_IsGhost = 0x10000000,
kCached_Health = 0x20000000,
kCached_Fatigue = 0x40000000,
kCached_SurvivalSkillMult = 0x80000000,
};
float radius;
float widthX;
float widthY;
float height;
float DPS;
float medicineSkillMult;
float survivalSkillMult;
float paralysis;
float healRate;
float fatigueReturnRate;
float perceptionCondition;
float eyeHeight;
int SetAggression;
int unk34;
float walkSpeed;
float runSpeedMult;
unsigned __int8 hasNoCrippledLegs;
unsigned __int8 pad41[3];
unsigned int flags;
};
virtual void Destroy(bool noDealloc);
virtual void Unk_01(void);
virtual void Unk_02(void);
virtual void Unk_03(void);
virtual void Unk_04(void);
virtual void Unk_05(void);
virtual void Unk_06(void);
virtual void Unk_07(void);
virtual void Unk_08(void);
virtual void Unk_09(void);
virtual void Unk_0A(void);
virtual void Unk_0B(void);
virtual void Unk_0C(void);
virtual void Unk_0D(void);
virtual void Unk_0E(void);
virtual void Unk_0F(void);
virtual void Unk_10(void);
virtual void Unk_11(void);
virtual void Unk_12(void);
virtual void Unk_13(void);
virtual void Unk_14(void);
virtual void Unk_15(void);
virtual void Unk_16(void);
virtual void Unk_17(void);
virtual void Unk_18(void);
virtual void Unk_19(void);
virtual void Unk_1A(void);
virtual void Unk_1B(void);
virtual void Unk_1C(void);
virtual void Unk_1D(void);
virtual void Unk_1E(void);
virtual void Unk_1F(void);
virtual void Unk_20(void);
virtual void Unk_21(void);
virtual void Unk_22(void);
virtual void Unk_23(void);
virtual void Unk_24(void);
virtual void Unk_25(void);
virtual void Unk_26(void);
virtual void Unk_27(void);
virtual void Unk_28(void);
virtual void Unk_29(void);
virtual void Unk_2A(void);
virtual void Unk_2B(void);
virtual void Unk_2C(void);
virtual void Unk_2D(void);
virtual void Unk_2E(void);
virtual void Unk_2F(void);
virtual void Unk_30(void);
virtual void Unk_31(void);
virtual void Unk_32(void);
virtual void Unk_33(void);
virtual void Unk_34(void);
virtual void Unk_35(void);
virtual void Unk_36(void);
virtual void Unk_37(void);
virtual void Unk_38(void);
virtual void Unk_39(void);
virtual void Unk_3A(void);
virtual void Unk_3B(void);
virtual void Unk_3C(void);
virtual void Unk_3D(void);
virtual void Unk_3E(void);
virtual void Unk_3F(void);
virtual void Unk_40(void);
virtual void Unk_41(void);
virtual void Unk_42(void);
virtual void Unk_43(void);
virtual void Unk_44(void);
virtual void Unk_45(void);
virtual void Unk_46(void);
virtual void Unk_47(void);
virtual void Unk_48(void);
virtual void Unk_49(void);
virtual void Unk_4A(void);
virtual void Unk_4B(void);
virtual void Unk_4C(void);
virtual void Unk_4D(void);
virtual void Unk_4E(void);
virtual void Unk_4F(void);
virtual void Unk_50(void);
virtual void Unk_51(void);
virtual void* GetWeaponInfo();
virtual void* GetAmmoInfo();
virtual void Unk_54(void);
virtual void Unk_55(void);
virtual void Unk_56(void);
virtual void Unk_57(void);
virtual void Unk_58(void);
virtual void Unk_59(void);
virtual void Unk_5A(void);
virtual void Unk_5B(void);
virtual void Unk_5C(void);
virtual void Unk_5D(void);
virtual void Unk_5E(void);
virtual void Unk_5F(void);
virtual void Unk_60(void);
virtual void Unk_61(void);
virtual void Unk_62(void);
virtual void Unk_63(void);
virtual void Unk_64(void);
virtual void Unk_65(void);
virtual void Unk_66(void);
virtual void Unk_67(void);
virtual void Unk_68(void);
virtual void Unk_69(void);
virtual void Unk_6A(void);
virtual void Unk_6B(void);
virtual void Unk_6C(void);
virtual void Unk_6D(void);
virtual void Unk_6E(void);
virtual void Unk_6F(void);
virtual void Unk_70(void);
virtual void Unk_71(void);
virtual void Unk_72(void);
virtual void Unk_73(void);
virtual void Unk_74(void);
virtual void Unk_75(void);
virtual void Unk_76(void);
virtual void Unk_77(void);
virtual void Unk_78(void);
virtual void Unk_79(void);
virtual void Unk_7A(void);
virtual void Unk_7B(void);
virtual void Unk_7C(void);
virtual void Unk_7D(void);
virtual void Unk_7E(void);
virtual void Unk_7F(void);
virtual void Unk_80(void);
virtual void Unk_81(void);
virtual void Unk_82(void);
virtual void Unk_83(void);
virtual void Unk_84(void);
virtual void Unk_85(void);
virtual void Unk_86(void);
virtual void Unk_87(void);
virtual void Unk_88(void);
virtual void Unk_89(void);
virtual void Unk_8A(void);
virtual void Unk_8B(void);
virtual void Unk_8C(void);
virtual void Unk_8D(void);
virtual void Unk_8E(void);
virtual void Unk_8F(void);
virtual void Unk_90(void);
virtual void Unk_91(void);
virtual void Unk_92(void);
virtual void Unk_93(void);
virtual void Unk_94(void);
virtual void Unk_95(void);
virtual void Unk_96(void);
virtual void Unk_97(void);
virtual void Unk_98(void);
virtual void Unk_99(void);
virtual void Unk_9A(void);
virtual void Unk_9B(void);
virtual void Unk_9C(void);
virtual PackageInfo* GetRunningPackage();
virtual void Unk_9E(void);
virtual void Unk_9F(void);
virtual void Unk_A0(void);
virtual void Unk_A1();
virtual void Unk_A2();
virtual void Unk_A3();
virtual void Unk_A4();
virtual void Unk_A5();
virtual void Unk_A6();
virtual void Unk_A7();
virtual void Unk_A8();
virtual void Unk_A9();
virtual void Unk_AA();
virtual void Unk_AB();
virtual void Unk_AC();
virtual void Unk_AD();
virtual void Unk_AE();
virtual void Unk_AF();
virtual void Unk_B0();
virtual void Unk_B1();
virtual void Unk_B2();
virtual void Unk_B3();
virtual void Unk_B4();
virtual void Unk_B5();
virtual void Unk_B6();
virtual void Unk_B7();
virtual void Unk_B8();
virtual void Unk_B9();
virtual void Unk_BA();
virtual void Unk_BB();
virtual void Unk_BC();
virtual void Unk_BD();
virtual void Unk_BE();
virtual void Unk_BF();
virtual void Unk_C0();
virtual void Unk_C1();
virtual void Unk_C2();
virtual void Unk_C3();
virtual void Unk_C4();
virtual void Unk_C5();
virtual void Unk_C6();
virtual void Unk_C7();
virtual void Unk_C8();
virtual void Unk_C9();
virtual void Unk_CA();
virtual void Unk_CB();
virtual void Unk_CC();
virtual void Unk_CD();
virtual void Unk_CE();
virtual void Unk_CF();
virtual void Unk_D0();
virtual void Unk_D1();
virtual void Unk_D2();
virtual void Unk_D3();
virtual void Unk_D4();
virtual void Unk_D5();
virtual void Unk_D6();
virtual void Unk_D7();
virtual void Unk_D8();
virtual void Unk_D9();
virtual void Unk_DA();
virtual void Unk_DB();
virtual void Unk_DC();
virtual void Unk_DD();
virtual void Unk_DE();
virtual void Unk_DF();
virtual void Unk_E0();
virtual void Unk_E1();
virtual void Unk_E2();
virtual void Unk_E3();
virtual void Unk_E4();
virtual void Unk_E5();
virtual void Unk_E6();
virtual void Unk_E7();
virtual void Unk_E8();
virtual void Unk_E9();
virtual void Unk_EA();
virtual void Unk_EB();
virtual void Unk_EC();
virtual void Unk_ED();
virtual void Unk_EE();
virtual void Unk_EF();
virtual void Unk_F0();
virtual void Unk_F1();
virtual void Unk_F2();
virtual void Unk_F3();
virtual void Unk_F4();
virtual void Unk_F5();
virtual void Unk_F6();
virtual void Unk_F7();
virtual SInt16 GetCurrentAnimAction();
virtual void Unk_F9();
virtual void Unk_FA();
virtual void Unk_FB();
virtual void Unk_FC();
virtual void Unk_FD();
virtual void Unk_FE();
virtual void Unk_FF();
virtual bool IsAiming();
virtual void Unk_101();
virtual UInt32 GetKnockedState();
virtual void Unk_103();
virtual void Unk_104();
virtual void Unk_105();
virtual void Unk_106();
virtual void Unk_107();
virtual void Unk_108();
virtual void Unk_109();
virtual void Unk_10A();
virtual void Unk_10B();
virtual void Unk_10C();
virtual void Unk_10D();
virtual void Unk_10E();
virtual void Unk_10F();
virtual void Unk_110();
virtual void Unk_111();
virtual void Unk_112();
virtual void Unk_113();
virtual bool IsWeaponOut();
virtual void Unk_115();
virtual void Unk_116();
virtual void Unk_117();
virtual void Unk_118();
virtual void Unk_119();
virtual void Unk_11A();
virtual void Unk_11B();
virtual void Unk_11C();
virtual void Unk_11D();
virtual void Unk_11E();
virtual void Unk_11F();
virtual void Unk_120();
virtual void Unk_121();
virtual void Unk_122();
virtual void Unk_123();
virtual void Unk_124();
virtual void Unk_125();
virtual void Unk_126();
virtual void Unk_127();
virtual void Unk_128();
virtual void Unk_129();
virtual void Unk_12A();
virtual void Unk_12B();
virtual void Unk_12C();
virtual void Unk_12D();
virtual void Unk_12E();
virtual void Unk_12F();
virtual void Unk_130();
virtual void Unk_131();
virtual void Unk_132();
virtual void* GetFurnitureMark();
virtual void Unk_134();
virtual void Unk_135();
virtual void Unk_136();
virtual void Unk_137();
virtual void Unk_138();
virtual void Unk_139();
virtual void Unk_13A();
virtual void Unk_13B();
virtual void Unk_13C();
virtual void Unk_13D();
virtual void Unk_13E();
virtual void Unk_13F();
virtual void Unk_140();
virtual void Unk_141();
virtual void Unk_142();
virtual void Unk_143();
virtual void Unk_144();
virtual void Unk_145();
virtual void Unk_146();
virtual void Unk_147();
virtual void Unk_148();
virtual Actor* GetCommandingActor();
virtual void Unk_14A();
virtual void Unk_14B();
virtual void Unk_14C();
virtual void Unk_14D();
virtual void Unk_14E();
virtual void Unk_14F();
virtual void Unk_150();
virtual void Unk_151();
virtual void Unk_152();
virtual void Unk_153();
virtual void Unk_154();
virtual void Unk_155();
virtual void Unk_156();
virtual void Unk_157();
virtual void Unk_158();
virtual void Unk_159();
virtual void Unk_15A();
virtual void Unk_15B();
virtual void Unk_15C();
virtual void Unk_15D();
virtual void Unk_15E();
virtual void Unk_15F();
virtual void Unk_160();
virtual void Unk_161();
virtual void Unk_162();
virtual void Unk_163();
virtual void Unk_164();
virtual void Unk_165();
virtual void Unk_166();
virtual void Unk_167();
virtual void Unk_168();
virtual void Unk_169();
virtual void Unk_16A();
virtual void Unk_16B();
virtual void Unk_16C();
virtual void Unk_16D();
virtual void Unk_16E();
virtual void Unk_16F();
virtual void Unk_170();
virtual void Unk_171();
virtual void Unk_172();
virtual void Unk_173();
virtual void Unk_174();
virtual void Unk_175();
virtual void Unk_176();
virtual void Unk_177();
virtual void Unk_178();
virtual void Unk_179();
virtual void Unk_17A();
virtual void Unk_17B();
virtual void Unk_17C();
virtual void Unk_17D();
virtual void Unk_17E();
virtual void Unk_17F();
virtual void Unk_180();
virtual void Unk_181();
virtual UInt32 GetFadeState();
virtual void Unk_183();
virtual void Unk_184();
virtual void Unk_185();
virtual void Unk_186();
virtual void Unk_187();
virtual void Unk_188();
virtual void Unk_189();
virtual void Unk_18A();
virtual void Unk_18B();
virtual void Unk_18C();
virtual void Unk_18D();
virtual void Unk_18E();
virtual void Unk_18F();
virtual void Unk_190();
virtual void Unk_191();
virtual void Unk_192();
virtual void Unk_193();
virtual void Unk_194();
virtual void Unk_195();
virtual void Unk_196();
virtual void Unk_197();
virtual void Unk_198();
virtual void Unk_199();
virtual void Unk_19A();
virtual void Unk_19B();
virtual void Unk_19C();
virtual void Unk_19D();
virtual void Unk_19E();
virtual void Unk_19F();
virtual void Unk_1A0();
virtual void Unk_1A1();
virtual void Unk_1A2();
virtual void Unk_1A3();
virtual void Unk_1A4();
virtual void Unk_1A5();
virtual void Unk_1A6();
virtual void Unk_1A7();
virtual void Unk_1A8();
virtual void Unk_1A9();
virtual void Unk_1AA();
virtual void Unk_1AB();
virtual void Unk_1AC();
virtual void Unk_1AD();
virtual void Unk_1AE();
virtual void Unk_1AF();
virtual void Unk_1B0();
virtual void Unk_1B1();
virtual void Unk_1B2();
virtual void Unk_1B3();
virtual void Unk_1B4();
virtual void Unk_1B5();
virtual void Unk_1B6();
virtual void Unk_1B7();
virtual void Unk_1B8();
virtual void Unk_1B9();
virtual void Unk_1BA();
virtual void Unk_1BB();
virtual void Unk_1BC();
virtual void Unk_1BD();
virtual void Unk_1BE();
virtual void Unk_1BF();
virtual void Unk_1C0();
virtual void Unk_1C1();
virtual void Unk_1C2();
virtual void Unk_1C3();
virtual void Unk_1C4();
virtual void Unk_1C5();
virtual void Unk_1C6();
virtual void Unk_1C7();
virtual void Unk_1C8();
virtual void Unk_1C9();
virtual void Unk_1CA();
virtual void Unk_1CB();
virtual void Unk_1CC();
virtual void Unk_1CD();
virtual void Unk_1CE();
virtual void Unk_1CF();
virtual void Unk_1D0();
virtual void Unk_1D1();
virtual void Unk_1D2();
virtual void Unk_1D3();
virtual void Unk_1D4();
virtual void Unk_1D5();
virtual void Unk_1D6();
virtual void Unk_1D7();
virtual void Unk_1D8();
virtual void Unk_1D9();
virtual void Unk_1DA();
virtual void Unk_1DB();
virtual void Unk_1DC();
virtual void Unk_1DD();
virtual void Unk_1DE();
virtual void Unk_1DF();
virtual void Unk_1E0();
virtual void Unk_1E1();
virtual void Unk_1E2();
virtual void Unk_1E3();
virtual void Unk_1E4();
virtual void Unk_1E5();
virtual void Unk_1E6();
virtual void Unk_1E7();
PackageInfo currentPackage; // 04
float unk1C; // 1C not initialized, only by descendant!
float fHourLastProcessed; // 20 not initialized, only by descendant to -1.0! flt020 gets set to GameHour minus one on package evaluation
UInt32 iDateLastProcessed; // 24 not initialized, only by descendant!
UInt32 uiProcessLevel; // 28 not initialized, only by descendant to 3 for Low, 2 for MidlleLow, 1 MiddleHighProcess and 0 for HigProcess
CachedValues* cachedValues; // 2C
};
STATIC_ASSERT(sizeof(BaseProcess) == 0x30);
struct ActorValueModifier
{
UInt8 actorValue;
UInt8 pad[3];
float fValue;
};
struct ActorValueModifiers
{
tList<ActorValueModifier*> avMods;
UInt8 unk008;
UInt8 pad009[3];
void** modifiedAV;
};
class LowProcess : public BaseProcess
{
public:
LowProcess();
~LowProcess();
virtual void Unk_1E8();
virtual void Unk_1E9();
virtual void Unk_1EA();
virtual void Unk_1EB();
virtual void Unk_1EC();
virtual void Unk_1ED();
virtual void Unk_1EE();
virtual void Unk_1EF();
virtual void Unk_1F0();
virtual void Unk_1F1();
virtual void Unk_1F2();
virtual void Unk_1F3();
virtual void Unk_1F4();
virtual void Unk_1F5();
virtual void Unk_1F6();
virtual void Unk_1F7();
virtual void Unk_1F8();
virtual void Unk_1F9();
virtual void Unk_1FA();
virtual void Unk_1FB();
virtual void Unk_1FC();
virtual void Unk_1FD();
virtual void Unk_1FE();
virtual void Unk_1FF();
virtual void Unk_200();
virtual void Unk_201();
struct ObjectToAcquire
{
TESObjectREFR* pRef;
TESForm* form;
UInt8 bSteal;
UInt8 bKill;
UInt8 gap0A[2];
UInt32 iAmount;
UInt32 iWantValue;
ExtraDataList* xDataList;
UInt32 eType;
};
UInt8 ucLowProcessFlags;
UInt8 pad31[3];
TESBoundObject* pUsedItem;
float kTimer[2];
Actor* pTarget;
TESForm* pGenericLocation;
TESForm* pSecondLocation;
BGSListForm* pList4C;
UInt16 usCount50;
UInt8 gap52[2];
TESForm* unk54;
UInt32 uiNumberItemsActivate;
tList<void*> kObjectList;
ObjectToAcquire* pAcquireObject;
void* pUnk68;
tList<void*> kGenericLocationsList;
tList<void*> kToAcquireList;
tList<void*> kList7C;
TESForm* pForm84;
UInt32 unk88;
PACKAGE_OBJECT_TYPE ePackageObjectType;
TESFaction* pFaction90;
UInt32 unk94;
ActorValueModifiers *damageModifiers;
UInt32 unk9C;
UInt32 unkA0;
float fEssentialDownTimer;
float fGameDayDied;
float fPlayerDamageDealt;
bool bSkippedTimeStampForPathing;
UInt8 gapB1;
UInt8 gapB2;
UInt8 gapB3;
};
STATIC_ASSERT(sizeof(LowProcess) == 0xB4);
class MiddleLowProcess : public LowProcess
{
public:
MiddleLowProcess();
~MiddleLowProcess();
virtual void Unk_202();
UInt32 iHourPackageEvaluated;
ActorValueModifiers tempModifiers;
};
STATIC_ASSERT(sizeof(MiddleLowProcess) == 0xC8);
enum KnockState : UInt8
{
kKnockState_Normal = 0x0,
kKnockState_Explode = 0x1,
kKnockState_ExplodeLeadIn = 0x2,
kKnockState_KnockedOut = 0x3,
kKnockState_KnockOutLeadIn = 0x4,
kKnockState_Queued = 0x5,
kKnockState_GettingUp = 0x6,
};
struct FurnitureMark
{
float kPos[3];
UInt16 usRotation;
UInt8 eType;
UInt8 gap0F;
};
class MiddleHighProcess : public MiddleLowProcess
{
public:
MiddleHighProcess();
~MiddleHighProcess();
virtual void Unk_203();
virtual void Unk_204();
virtual void Unk_205();
virtual void Unk_206();
virtual void Unk_207();
virtual void Unk_208();
virtual void Unk_209();
virtual void Unk_20A();
virtual void Unk_20B();
virtual void Unk_20C();
virtual void Unk_20D();
virtual void Unk_20E();
virtual void Unk_20F();
virtual void Unk_210();
virtual void Unk_211();
virtual void Unk_212();
virtual void Unk_213();
virtual void Unk_214();
virtual void Unk_215();
virtual void Unk_216();
TESForm** unk0C8[2];
tList<void> furnitureRefList0D0;
float fPursueTimer;
float unk0DC;
UInt8 bIdleDoneOnce;
UInt8 byte0E1;
UInt8 byte0E2;
UInt8 byte0E3;
PackageInfo kRunOncePackage;
float kLastSeenTargetPosition[3];
PACKAGE_OBJECT_TYPE eUseItem;
TESIdleForm* lastPlayedIdle;
UInt8 bResetPackageIdleTimer;
UInt8 gape111[3];
void* pWeaponInfo;
void* pAmmoInfo;
void* spQueuedFile;
void* spCloneReserver;
UInt8 bIsUsingOneHandGrenade;
UInt8 bIsUsingOneHandMine;
UInt8 bIsUsingOneHandThrown;
UInt8 isWearingHeavyArmor;
UInt8 isWearingPowerArmorTorso;
UInt8 isWearingPowerArmorHelmet;
UInt8 isWearingBackpack;
UInt8 gap12B;
NiNode* pWeaponNode;
void* class130;
UInt8 wantsWeaponOut;
bool bIsWeaponOut;
UInt8 byt136;
UInt8 byt137;
void* spCharCtrl;
KnockState eKnockedState;
UInt8 ucSitSleepState;
UInt8 gap13E[2];
TESObjectREFR* pFurnitureRef;
UInt8 ucMarkerIndex;
UInt8 gap145[3];
FurnitureMark kFurnitureMark;
Actor* commandingActor;
UInt32 unk15C;
MagicItem* magicItem160;
UInt32 unk164;
UInt8 byte168;
UInt8 gap169[3];
UInt32 pEnchantEffectShader;
float fActorAlpha;
float unk174;
void* pFaceAnimationData;
UInt8 byte17C;
UInt8 byte17D;
UInt8 byte17E;
UInt8 byte17F;
UInt8 byte180;
UInt8 gap181[3];
UInt32 flags184;
UInt8 hasCaughtPlayerPickpocketting;
UInt8 byte189;
UInt8 bHasLifeDetectedEffect;
UInt8 byte18B;
UInt8 flags18C;
UInt8 bForceNextUpdate;
UInt8 gap18E[2];
UInt32 iPackageIdleNumber;
TESIdleForm* pCurrentIdle;
float fPackageIdleTimer;
UInt8 byte19C;
UInt8 byte19D;
UInt8 gap19E[2];
UInt32 lipSyncAnim1A0;
UInt32 unk1A4;
UInt32 iReservationSlot;
void* pArrowProjectiles;
tList<void> deferredLimbHideList;
void* effectsList;
MagicTarget* magicTarget1BC;
void* pAnimData;
void* weaponSequence[3];
float angle1D0;
float fTime1D4_WeaponRelated;
UInt8 byte1D8;
UInt8 isFiringAutomaticWeapon;
UInt8 bGetAttacked;
UInt8 gap1DB;
NiNode* limbNodes[15];
NiNode* hairBodyPartNode;
NiNode* headBodyPartNode;
void* spLightingProperty;
void* boundingBox;
UInt8 isAiming;
UInt8 byte229;
UInt16 byte22A_shouldEnterFurniture;
UInt32 unk22C;
void* queuedEquipItems;
float unk234;
float rads238;
float fWaterRadsSec;
void* lastHitData;
UInt32 unk244;
void* unk248;
void* unk24C;
void* unk250;
};
STATIC_ASSERT(sizeof(MiddleHighProcess) == 0x254);
struct DialogueItem;
class HighProcess : public MiddleHighProcess
{
public:
HighProcess();
~HighProcess();
virtual void Unk_217();
enum FADE_STATE : UInt32
{
FADE_NORMAL = 0x0,
FADE_IN = 0x1,
FADE_OUT = 0x2,
FADE_TELEPORT_IN = 0x3,
FADE_TELEPORT_OUT = 0x4,
FADE_OUT_DISABLE = 0x5,
FADE_OUT_DELETE = 0x6,
FADE_MOVE_TO_MARKER = 0x7,
FADE_STATE_COUNT = 0x8,
};
tList<void>* detectedActors;
tList<void>* detectingActors;
tList<void>* actorList264;
tList<void>* detectionDataList268;
tList<void>* detectionDataList26C;
UInt8 byte270;
tList<void> combatTargetList274;
tList<void> combatList27C;
tList<void> combatList284_UNUSED;
tList<void> exteriorSpectatorsList;
float fDetectListTimer;
float idleChatterCommentTimer;
UInt8 byte29C;
UInt8 bProcessGreetSayTo;
UInt8 gap29E;
UInt8 gap29F;
float fAITalkToSameNPCTimer;
Actor* unk2A4;
float flt2A8;
TESObjectREFR* ref2AC;
float fAlpha;
float fPackageEvalTimer;
float fUseItemTimer;
float flt2BC;
UInt16 count2C0;
UInt16 numVolleyShots;
UInt16 count2C4;
UInt8 byte2C6;
UInt8 bSkippedUpdate;
float fSocialTimerForConversations;
UInt32 unk2CC;
float flt2D0;
float flt2D4;
float flt2D8;
UInt32 unk2DC;
float fEvaluateAcquireTimer;
void* pBoneLODController;
SInt32 iLODLevel;
SInt16 usCurrentAction;
void* pCurrentSequence;
UInt8 bForceFireWeapon;
float fDetectionTimer;
UInt32 unk2FC[5];
float time310;
void* kSounds[6];
UInt8 bGreetingFlag;
UInt8 gap32D;
UInt8 gap32E;
UInt8 gap32F;
float fDyingTimer;
float fIdleTimer;
float flt338;
float fDiveBreath;
UInt32 unk340;
float painSoundTimer344;
UInt8 byte348;
UInt8 bWeaponAlertDrawn;
UInt8 gap34A;
UInt8 gap34B;
float fAwarePlayerTimer;
TESIdleForm* forcedIdleForm;
void* spUnk354[2];
void* spUnk35C[2];