/
Classes.h
1955 lines (1856 loc) · 64.5 KB
/
Classes.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 "Maths.h"
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <cctype>
#include <vector>
#include <algorithm>
#include <map>
#pragma region sheh
#define IGameFramework_Address 0x1B29194 //Failed to create the GameFramework Interface!
#define SSystemGlobalEnvironment__GlobalAdr 0x18F32F0 //ai_compatabilityMode
#define SSystemGlobalEnvironment__pIPhysicalWorld 0x44 //RayWorldIntersection(Game)
#define SSystemGlobalEnvironment__pIRenderer 0x30 //Draw2dLine
#define SSystemGlobalEnvironment__pIGame 0x70 //IsPlayer
#define SSystemGlobalEnvironment__GetI3DEngine 0x88 //Dof_Active
#define SSystemGlobalEnvironment__GetITimer 0x2C //GetFrameTime (this + 96 at the top)
#define SSystemGlobalEnvironment__GetIEntitySystem 0x78 //GetEntities
//ssglobal + 120 ientitysystem
/////////POSITION/////////////////////
#define IGF__GetClientActor 0x238 / 4 //sp_difficulty (2 lines above)
#define IEntitySystem_GetEntityIt 0x50 / 4 //GetEntitiesByClass (second SSGE)
#define IEntitySystem_GetEntityByName 0x30 / 4 //GetEntityByName(a2 = ...)
#define IEntityIt_Next 0x18 / 4 //GameObjectSystem (i = ...)
#define IEntity___SetPos 0x54 / 4 //SetWorldPos
#define IEntity__SetLocalPos 0x6C / 4 //SetLocalPos
#define IEntity__SetSlotLocalTM 0x130 / 4 //SetSlotPos
#define IEntity__GetWorldBBox 0x64 / 4 //GetWorldBoundsCenter (v3 + ..., before the __asm stuff)
#define IEntity__SetName 0x2C / 4 //SetName
#define IEntity__SetScale 0x7C / 4 //SetVecScale
#define IEntity___GetCharacter 0x148 / 4 //RgtArm01 (v4, the first one tout au dessu)
#define ISkeletonPose__GetAbsJointByID 0x1C / 4 //RgtArm01 (v7, the third one)
#define ISkeletonPose__GetJointNameByID 0xC0 / 4 //
#define V_GetISkeletonPose 0x14 / 4 //RgtArm01 (v6, the second one)
#define V_GetProxy 0xEC / 4 //CreateRenderProxy (the first one with !)
#define ISystem__GetCamera 0x1B4 / 4 //GetViewCameraPos
#define ITimer_GetFrameTime 0x1C / 4 //mat_water (SSGE at the top 2 lines above the sub call)
#define V_SetPostEffectParamI 0x23C / 4 //Dof_Active
#define IEntityRenderProxy__SetHUDSilhouettesParams 0xB0 / 4 //HudSilhouettes_Type (v10 + ...)
#define IActor__GetPlayer 0x8F8 //SetViewRotation (first one)
///////////////////////////////
#define V_Shutter 0x8A
#define V_SetRecoilMult 752 //-
#define V_OffRecoil 756 //-
#define V_SetRecoil 748 //-
#define V_CameraSway 4
//////////OFFSET//////////////////
#define V_GetIWeapon 0x14
///////////////////////////////
#define V_GetCurrentClass 0x328
#define V_StartFire 0x2C / 4 //CScriptBind_Weapon::AutoShoot (first)
#define V_StopFire 0x30 / 4 //CScriptBind_Weapon::AutoShoot (second)
#define Off_PickupDistance 0x1CD //i_pickupDistance
///////////////////////////////
#define IGameRules__GetTeam 0x1B0 / 4 //GetTeam (if v3)
#define IGameRules__SetTeam 0x1A8 / 4 //SetTeam (if v4)
#define IGameRules__GetIBombSystem 0x234 //SetIBombSystem
#define IGameRules__AttackersTeam 0x224 //getAttackersTeam
#define IGameRules__DefendersTeam 0x168
#define V_GetCurrentGameRules 0x618 //
#define V_ProjectScreen 0x178 / 4 //ProjectToScreen
#define IPW_RWI 0x88 / 4 //RayWorldIntersection
///////////////////////////////
#define jsp 0xA4D1
template< typename cData >
cData vFun_Call(PVOID BaseClass, DWORD vOFFSET)
{
PDWORD* vPointer = (PDWORD*)BaseClass;
PDWORD vFunction = *vPointer;
DWORD dwAddress = vFunction[vOFFSET];
return (cData)(dwAddress);
}
#pragma endregion
class SSystemGlobalEnvironment;
class I3DEngine;
class IGame;
class IActorSystem;
class ICVar;
class IRenderer;
class IEntitySystem;
class IEntity;
class IEntityClassRegistry;
class IPhysicalWorld;
class ITimer;
class ISystem;
class IPhysicalEntity;
struct HitInfo;
class SSystemGlobalEnvironment
{
public:
char pad_0x0000[0x30]; //0x0000
IRenderer* pRenderer; //0x0030
char pad_0x0034[0x10]; //0x0034
IPhysicalWorld* pPhysicalWorld; //0x0044
char pad_0x0048[0x28]; //0x0048
IGame* pIGame; //0x0070
char pad_0x0074[0x4]; //0x0074
IEntitySystem* pEntitySystem; //0x0078
char pad_0x007C[0xC]; //0x007C
I3DEngine* p3DEngine; //0x0088
char pad_0x008C[0x34]; //0x008C
};
class I3DEngine
{
public:
virtual void Function0(); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
virtual void Function10(); //
virtual void Function11(); //
virtual void Function12(); //
virtual void Function13(); //
virtual void Function14(); //
virtual void Function15(); //
virtual void Function16(); //
virtual void Function17(); //
virtual void Function18(); //
virtual void Function19(); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
virtual void Function23(); //
virtual void Function24(); //
virtual void Function25(); //
virtual void Function26(); //
virtual void Function27(); //
virtual void Function28(); //
virtual void Function29(); //
virtual void Function30(); //
virtual void Function31(); //
virtual void Function32(); //
virtual void Function33(); //
virtual void Function34(); //
virtual void Function35(); //
virtual void Function36(); //
virtual void Function37(); //
virtual void Function38(); //
virtual void Function39(); //
virtual void Function40(); //
virtual void Function41(); //
virtual void Function42(); //
virtual void Function43(); //
virtual void Function44(); //
virtual void Function45(); //
virtual void Function46(); //
virtual void Function47(); //
virtual void Function48(); //
virtual void Function49(); //
virtual void Function50(); //
virtual void Function51(); //
virtual void Function52(); //
virtual void Function53(); //
virtual void Function54(); //
virtual void Function55(); //
virtual void Function56(); //
virtual void Function57(); //
virtual void Function58(); //
virtual void Function59(); //
virtual void Function60(); //
virtual void Function61(); //
virtual void Function62(); //
virtual void Function63(); //
virtual void Function64(); //
virtual void Function65(); //
virtual void Function66(); //
virtual void Function67(); //
virtual void Function68(); //
virtual void Function69(); //
virtual void Function70(); //
virtual void Function71(); //
virtual void Function72(); //
virtual void Function73(); //
virtual void Function74(); //
virtual void Function75(); //
virtual void Function76(); //
virtual void Function77(); //
virtual void Function78(); //
virtual void Function79(); //
virtual void Function80(); //
virtual void Function81(); //
virtual void Function82(); //
virtual void Function83(); //
virtual void Function84(); //
virtual void Function85(); //
virtual void Function86(); //
virtual void Function87(); //
virtual void Function88(); //
virtual void Function89(); //
virtual void Function90(); //
virtual void Function91(); //
virtual void Function92(); //
virtual void Function93(); //
virtual void Function94(); //
virtual void Function95(); //
virtual void Function96(); //
virtual void Function97(); //
virtual void Function98(); //
virtual void Function99(); //
virtual void Function100(); //
virtual void Function101(); //
virtual void Function102(); //
virtual void Function103(); //
virtual void Function104(); //
virtual void Function105(); //
virtual void Function106(); //
virtual void Function107(); //
virtual void Function108(); //
virtual void Function109(); //
virtual void Function110(); //
virtual void Function111(); //
virtual void Function112(); //
virtual void Function113(); //
virtual void Function114(); //
virtual void Function115(); //
virtual void Function116(); //
virtual void Function117(); //
virtual void Function118(); //
virtual void Function119(); //
virtual void Function120(); //
virtual void Function121(); //
virtual void Function122(); //
virtual void Function123(); //
virtual void Function124(); //
virtual void Function125(); //
virtual void Function126(); //
virtual void Function127(); //
virtual void Function128(); //
virtual void Function129(); //
virtual void Function130(); //
virtual void Function131(); //
virtual void Function132(); //
virtual void Function133(); //
virtual void Function134(); //
virtual void Function135(); //
virtual void Function136(); //
virtual void Function137(); //
virtual void Function138(); //
virtual void Function139(); //
virtual void Function140(); //
virtual void Function141(); //
virtual void Function142(); //
virtual void SetPostEffectParam(const char *pParam, float fValue, bool bForceValue = false); //virtual void Function143(); //
}; //Size=0x0004
struct CPlayer
{
char unknown0[164]; //
Quat m_viewQuat; //0x00A4
Quat m_viewQuatFinal; //0x00B4
Quat m_BaseQuat; //0x00C4
bool m_timeDemo; //0x00D4
bool m_ignoreRecoil; //0x00D5
char unknown1[2]; //0x00D6
Vec3 m_viewAngleOffset; //0x00D8
Quat GetViewRotation() { return m_viewQuatFinal; }
void SetViewRotation(Quat &rotation) {
m_BaseQuat = rotation;
m_viewQuat = rotation;
m_viewQuatFinal = rotation;
}
};
enum EStance {
STANCE_NULL = -1,
STANCE_STAND = 0,
STANCE_CROUCH,
STANCE_PRONE,
STANCE_RELAXED,
STANCE_STEALTH,
STANCE_LOW_COVER,
STANCE_ALERTED,
STANCE_HIGH_COVER,
STANCE_SWIM,
STANCE_ZEROG,
STANCE_LAST
};
struct SStanceState {
Vec3 pos;///0-8
Vec3 entityDirection;//c-14
Vec3 animationBodyDirection;//18-20
Vec3 upDirection;//24-2C
Vec3 weaponPosition;//30-38
Vec3 aimDirection;//3C-44
Vec3 fireDirection;//48-50
Vec3 eyePosition;//54-5C
Vec3 eyeDirection;//60-68
float lean;//6C
float peekOver;//70
AABB m_StanceSize;//74-88
AABB m_ColliderSize;//8C-94,98-A0
};
struct SMovementState : public SStanceState {
DWORD Unk;//Vec3 fireTarget;//A4
EStance stance;//A8
Vec3 animationEyeDirection;//AC-B4
Vec3 movementDirection, lastMovementDirection;//B8-C0,C4-CC
float desiredSpeed;//D0
float minSpeed;
float normalSpeed;
float maxSpeed;
float slopeAngle;
bool atMoveTarget;
bool isAlive;
bool isAiming;
bool isFiring;
bool isVisible;
bool isMoving;
};
class CMovementRequest {};
class IMovementController {
public:
virtual virtual ~IMovementController() {}; //0x0
virtual bool RequestMovement(CMovementRequest& request) = 0;
virtual void GetMovementState(SMovementState &state) = 0;
virtual bool GetStanceState( /*const SStanceStateQuery& query, SStanceState& state*/) = 0;
};
template <typename T>
T cClassValue(VOID *Base, INT index) { return (*(T**)Base)[index / 4]; }
class IWeaponExtraOne
{
public:
void Damage(__int32 iValue) { *(__int32*)((DWORD)this + 0x8) = iValue; }
void SetRecoil(int Status)
{
if (Status == 0) { *(INT*)((DWORD)this + 0x2F0) = *(INT*)((DWORD)this + V_OffRecoil); }
if (Status == 1) { *(INT*)((DWORD)this + 0x2F0) = *(INT*)((DWORD)this + V_SetRecoil); }
}
};
class IWeaponExtraTwo
{
public:
void SetCameraSway(float fValue)
{
*(float*)((DWORD)this) = fValue;
*(float*)((DWORD)this + V_CameraSway) = fValue;
}
};
class IWeaponExtraThree
{
public:
void SetAmmoCount(__int32 iValue) { *(__int32*)((DWORD)this + 0x4) = iValue; }
__int32 GetAmmoCount() { return *(__int32*)((DWORD)this + 0x4); }
};
class IWeaponSpecific
{
public:
auto m_pWeaponExtraOne() { return *(IWeaponExtraOne**)((DWORD)this + 0x24); }
auto m_pWeaponExtraTwo() { return *(IWeaponExtraTwo**)((DWORD)this + 0x30); }
auto m_pWeaponExtraThree() { return *(IWeaponExtraThree**)((DWORD)this + 0x34); }
VOID Shutter(INT8 iValue) { *(INT8*)((DWORD)this + V_Shutter) = iValue; }
VOID SetRecoilMult(INT8 iValue) { *(INT8*)((DWORD)this + V_SetRecoilMult) = iValue; }
};
class IFireMode
{
public:
bool IsFiring()
{
using oIsFiring = bool(__thiscall*)(PVOID);
return cClassValue<oIsFiring>(this, 144)(this);
}
};
class IWeapon
{
public:
void StartFire()
{
using oStartFire = void(__thiscall*)(PVOID);
return cClassValue<oStartFire>(this, 44)(this);
}
void StopFire()
{
using oStopFire = void(__thiscall*)(PVOID);
return cClassValue<oStopFire>(this, 48)(this);
}
IFireMode* GetFireMode(int FireModeId)
{
using oGetFireMode = IFireMode * (__thiscall*)(PVOID, int);
return cClassValue<oGetFireMode>(this, 116)(this, FireModeId);
}
auto m_pWeaponSpecific() { return *(IWeaponSpecific**)((DWORD)this + 0x4); }
};
class IItem
{
public:
IWeapon * GetIWeapon() { return((IWeapon*)this + 0x14); }
VOID SetFiringPos(Vec3 vPos) { *(Vec3*)((DWORD)*(DWORD*)((DWORD)GetIWeapon() + 0xC) + 0x10) = vPos; }
Vec3 GetFiringPos() { return *(Vec3*)((DWORD)*(DWORD*)((DWORD)GetIWeapon() + 0xC) + 0x10); }
};
class IActor
{
public:
virtual void Function0(); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
virtual void Function10(); //
virtual void Function11(); //
virtual void Function12(); //
virtual void Function13(); //
virtual void Function14(); //
virtual void Function15(); //
virtual void Function16(); //
virtual void Function17(); //
virtual void Function18(); //
virtual void Function19(); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
virtual void Function23(); //
virtual bool IsDead(); //0x0060 activeplayer
virtual void Function25(); //0x64
virtual void Function26(); //0x68
virtual int GetHealth(); //
virtual void SetHealth(int Health);//Function28(); //0x70
virtual void Function29(); //0x74
virtual void SetMaxHealth(float fMaxHealth); //
virtual int GetMaxHealth(); //
virtual int GetArmor(); //
virtual int GetMaxArmor(); //
virtual void Function34(); //0x88
virtual void Function35(); //0x8C
virtual void Function36(); //0x90
virtual void Function37(); //0x94
virtual void Function38(); //0x98
virtual void Function39(); //0x9C
virtual void Function40(); //0xA0
virtual void Function41(); //0xA4
virtual void Function42(); //0xA8
virtual void Function43(); //0xAC
virtual void Function44(); //0xB0
virtual EntityId GetGrabbedEntityId(); //0xB4 //CGameRules::CullEntitiesInExplosion
virtual void Function46(); //0xB8
virtual void Function47(); //0xBC
virtual void SetCurrentItem(EntityId itemid); //0xE0
virtual void Function49(); //0xC4
virtual void Function50(); //0xC8
virtual void SetViewRotation(const Quat& pRotation); //
virtual Quat GetViewRotation(); //
virtual void Function53(); //0xD4
virtual void Function54(); //0xD8
virtual void Function55(); //0xDC
virtual IItem* GetCurrentItem(bool includeVehicle = false) const = 0; //0xE0
virtual void Function57(); //0xE4
virtual void Function58(); //virtual IInventory *GetInventory();//virtual void Function58(); //E8
virtual void Function59();//EC
virtual IMovementController *GetMovementController(); //"ASCII bodyfall -- inside func CPlayer::Landed virtual void Function60(); //F0
virtual IEntity *LinkToVehicle(EntityId vehicleId) = 0;
virtual IEntity* GetLinkedEntity() const = 0;
virtual int GetSpectatorMode() const = 0;
virtual void SetSleepTimer(float timer) = 0;
virtual void *GetReplacementMaterial() = 0;//IMaterial
virtual bool IsThirdPerson() const = 0;//108
virtual void ToggleThirdPerson() = 0;//10C
virtual bool IsPlayer();//
virtual bool IsClient();//
virtual void Function70();//
virtual void Function71();//
virtual char *GetActorClassName();
virtual void Function73(); //virtual ActorClass GetActorClass() const = 0;
virtual const char* GetEntityClassName() const = 0;
int getEntityId() { return *(int*)((DWORD)this + 0x10); };
//8 192 44
int getSelectedWeaponType() { return (int)*(DWORD*)((DWORD)this + 0xAE8); }
//Primary: 1818650994
//Secondary: 1953720688
//Knife: 1718185579
//Grenade: 1852142183
//Claymore: 30574
//Medikit: 1801741677
//Ammo Box: 1869442401
//Armor Kit: 1634755954
//Defi: 26212
int GetCurrentClass() { return (int)*(DWORD*)((DWORD)this + V_GetCurrentClass); }
IEntity* getIEntity() { return (IEntity*)*(DWORD*)((DWORD)this + 0x08); };
CPlayer *GetPlayer() { return (CPlayer*)*(DWORD*)((DWORD)this + 0x8F8); };
auto IsTriggerID()
{
auto u = *(int*)((DWORD)this + 0xC);
u = *(int*)((DWORD)u + 0x40);
u = *(int*)((DWORD)u + 0x18);
return (int)*(DWORD*)((DWORD)u + 0x110);
}
void SetExtraClimbHeight(float fValue) {
*(float*)((DWORD)this + 0xC18) = fValue;
}
void slideDistanceMult(float pValue) {
*(float*)((DWORD)this + 0xC0C) = pValue;
}
void claymore_detector_radius(float eValue) {
*(float*)((DWORD)this + 0xAB8) = eValue;
}
void minStaminaToStartHaste(float gValue) {
*(float*)((DWORD)this + 0xC10) = gValue;
}
};
struct IGame
{
public:
ICVar * GetICvar()
{
return (ICVar*)*(DWORD*)((DWORD)this + 0xA0);//GetICVar
}
//static IGame* GetIGame() {
// return *(IGame**)0x1B26B04; // atimeout ds:d___ upper ssge or Libs/UI/HUDHitIndicatorHor.tif between ssge and aLibsUiHudhitin ds:d
//}
};
class ICVar
{
public:
void SetIPelletsDisp(float iValue)//accuracy
{
*(float*)((DWORD)this + 0x120) = iValue;//i_pelletsDisp
}
void CrosshairSpreadTuning(int iValue) {
*(int*)((DWORD)this + 0x544) = iValue;//g_crosshairSpreadTuning_Enable
}
void ACPatternScan(int OFF) {
*(int*)((DWORD)this + 0xA10) = OFF;
}
void ACMemScan(int OFF) {
*(int*)((DWORD)this + 0xA08) = OFF;
}
void ACMemLog(int OFF) {
*(int*)((DWORD)this + 0xA0C) = OFF;
}
void SetUnlimAmmo(int iAmmo)
{
*(int*)((DWORD)this + 0x128) = iAmmo;
}
void silencer_shoot_spotting(int xValue)
{
*(int*)((DWORD)this + 0xB70) = xValue;
}
void SetPickupDist(float fValue)
{
*(float*)((DWORD)this + 0x734) = fValue;
}
void g_kickvote_pve_max_checkpoints(int num)
{
*(int*)((DWORD)this + 0x44C) = num;
}
void g_enable_ingame_kickvote_in_zombiemission(int fValue)
{
*(int*)((DWORD)this + 0x448) = fValue;
}
void i_soundeffects(int fValue)
{
*(int*)((DWORD)this + 0x00D8) = fValue;
}
void g_enableIdleCheck(int fValue)
{
*(int*)((DWORD)this + 0x160) = fValue;
}
};
enum FlagStates
{
Flag_Unknown = 0,
Flag_PickedUp,
Flag_Dropped,
Flag_Captured,
};
enum BombStates
{
Bomb_Unknown = 0,
Bomb_Initial,
Bomb_Dropped,
Bomb_PickedUp,
Bomb_Planted,
Bomb_Exploded,
Bomb_Defusing //6
};
enum BombPlantSites
{
Site_Unknown = 0,
Site_A,
Site_B
};
class ICaptureSystem
{
public:
EntityId CaseCarrierId; //0x0000
char _0x0004[4];
__int32 CurrentCaseState; //0x0008
};//Size=0x000C
class IBombSystem
{
public:
char _0x0000[8];
__int32 CurrentBombState; //0x008
__int32 CurrentPlantSite; //0x0012
EntityId BombCarrierId; //0x0016
};//Size=0x0014
class ICoreSystem
{
public:
char _0x0000[64];
};//Size=0x0040
class IStormSystem
{
public:
__int32 CurrentCoreId; //0x0000
__int32 TotalCores; //0x0004
__int32 CaptureProgress; //0x0008
__int32 CoresCaptured; //0x000C
};//Size=0x0010
enum GameModes
{
Mode_Unknown = 0,
Mode_TeamDeathmatch,
Mode_Capture,
Mode_CoopSurvival,
Mode_PlantTheBomb,
Mode_Storm,
Mode_FreeForAll,
Mode_Destruction,
Mode_Domination
};
struct IGameRoom
{
char unknown0[1372]; //
__int32 GameType; //1372
static IGameRoom* GetGameRoom() {
return *(IGameRoom**)0x1B8F034;
}
};
struct ray_hit {
float dist;
IPhysicalEntity *pCollider;
int ipart;
int partid;
short surface_idx;
short idmatOrg; // original material index, not mapped with material mapping
int foreignIdx;
int iNode; // BV tree node that had the intersection; can be used for "warm start" next time
Vec3 pt;
Vec3 n; // surface normal
int bTerrain; // global terrain hit
int iPrim; // hit triangle index
ray_hit *next; // reserved for internal use, do not change
};
struct IGameRules
{
virtual void Function0(); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
virtual void Function10(); //
virtual void Function11(); //
virtual void Function12(); //
virtual void Function13(); //
virtual void Function14(); //
virtual int GetChannelId(IActor* playerId); //
virtual void Function16(); //
virtual void Function17(); //
virtual void Function18(); //
virtual void Function19(); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
virtual void Function23(); //
virtual void Function24(); //
virtual void Function25(); //
virtual void Function26(); //
virtual void Function27(); //
virtual void Function28(); //
virtual void Function29(); //
virtual void Function30(); //
virtual void Function31(); //
virtual void Function32(); //
virtual void Function33(); //
virtual void Function34(); //
virtual void SendTextMessage(); //
virtual void Function36(); //
virtual void Function37(); //
virtual void Function38(); //
virtual void Function39(); //
virtual void Function40(); //
virtual void Function41(); //
virtual void Function42(); //
virtual void Function43(); //
virtual void Function44(); //
virtual void Function45(); //
virtual void Function46(); //
virtual void Function47(); //
virtual void Function48(); //
virtual void Function49(); //
virtual bool IsTimeLimited() const;//
virtual float GetRemainingGameTime() const;//
virtual void Function52(); //
virtual void Function53(); //
virtual void Function54(); //
virtual void Function55(); //
virtual void Function56(); //
virtual void Function57(); //
virtual void Function58(); //
virtual void Function59(); //
virtual void Function60(); //
virtual void ResetGameTime(); //
virtual void Function62(); //
virtual void Function63(); //
virtual void ResetRoundTime(); //
virtual float GetRemainingRoundTime() const; //
virtual void Function66(); //
virtual void Function67(); //
virtual void AwardPlayer(int scoringEvent, int entityId);
virtual void Function69(); //
virtual void Function70(); //
virtual void Function71(); //
virtual void Function72(); //
virtual void Function73(); //
virtual IActor *SpawnPlayer(int channelId, const char *name, const char *className, const Vec3 &pos, const Ang3 &angles);
virtual void Function75(); //
virtual void Function76(); //
virtual void RevivePlayer(IActor *pActor, const Vec3 &pos, const Ang3 &angles, int teamId, bool clearInventory = true);
virtual void RenamePlayer(); //
virtual void Function79(); //
virtual void Function80(); //
virtual void KillPlayer(IActor* pActor, const bool inDropItem, const bool inDoRagdoll, const HitInfo &inHitInfo);
virtual void Function82(); //
virtual void GetPlayerCount(); //
virtual void GetSpectatorCount(); //
virtual void Function85(); //
virtual void Function86(); //
virtual void IsPlayerInGame(); //
virtual void Function88(); //
virtual void Function89(); //
virtual void Function90(); //
virtual void Function91(); //
virtual void Function92(); //
virtual void Function93(); //
virtual void Function94(); //
virtual void Function95(); //
virtual void CreateTeam(const char* name); //
virtual void GetTeamName(); //
virtual void GetTeamCount(); //
virtual void GetTeamPlayerCount(); //18C
virtual int GetTeamId(const char* teamname); //
virtual void GetTeamPlayer(); //
virtual void GetTeamChannelCount(); //
virtual void Function103(); //
virtual void Function104(); //
virtual void Function105(); //
virtual void SetTeam(int teamId, int entityId); //
virtual void Function107(); //
virtual int GetTeam(int entityId); //0x01B0
virtual void GetChannelTeam();//
virtual void Function110(); //
virtual void Function111(); //
virtual void Function112(); //
virtual void Function113(); //
virtual void Function114(); //
virtual void Function115(); //
virtual void Function116(); //
virtual void Function117(); //
virtual void Function118(); //
virtual int AddSpawnLocation(int entityId); //
virtual void Function120(); //
virtual void Function121(); //
virtual void GetSpawnLocation(int playerId, int teamId, bool ignoreTeam, bool includeNeutral); //
virtual int AddSpawnGroup(int groupId); //
virtual void AddSpawnLocationToSpawnGroup(int groupId, int location); //
virtual void Function125(); //
virtual void Function126(); //
virtual void Function127(); //
virtual void Function128(); //
virtual void Function129(); //
virtual void Function130(); //
virtual void SetTeamDefaultSpawnGroup(int teamId, int groupId); //
virtual int GetTeamDefaultSpawnGroup(int teamId); //
virtual void Function133(); //
virtual void Function134(); //
virtual void Function135(); //
virtual void Function136(); //
virtual void Function137(); //
virtual void GetTeamInstantSpawnGroup(int teamId); //
virtual void SetTeamInstantSpawnGroup(int teamId, int groupId); //
virtual void Function140(); //
virtual void Function141(); //
virtual void Function142(); //
virtual void Function143(); //
virtual void Function144(); //
virtual void Function145(); //
virtual void Function146(); //
virtual void Function147(); //
virtual void Function148(); //
virtual void Function149(); //
virtual void EndGame(int reason, int winningteamId); //
virtual void Function151(); //
virtual void Function152(); //
virtual void Function153(); //
virtual void Function154(); //
virtual void GameOver(int Winnerteam); //
__int32 AttackersTeamId() { return *(__int32*)((DWORD)this + IGameRules__DefendersTeam - 4); }
__int32 DefendersTeamId() { return *(__int32*)((DWORD)this + IGameRules__DefendersTeam); }
ICaptureSystem *pCaptureSystem() { return (ICaptureSystem*)*(DWORD*)((DWORD)this + IGameRules__GetIBombSystem - 4); };
IBombSystem *pBombSystem() { return (IBombSystem*)*(DWORD*)((DWORD)this + IGameRules__GetIBombSystem); };
ICoreSystem *pCoresSystem() { return (ICoreSystem*)*(DWORD*)((DWORD)this + IGameRules__GetIBombSystem + 4); };
IStormSystem *pStormSystem() { return (IStormSystem*)*(DWORD*)((DWORD)this + IGameRules__GetIBombSystem + 8); };
};
struct IGameFramework
{
public:
virtual void Function0(); //
virtual void Function1(); //
virtual void Function2(); //
virtual void Function3(); //
virtual void Function4(); //
virtual void Function5(); //
virtual void Function6(); //
virtual void Function7(); //
virtual void Function8(); //
virtual void Function9(); //
virtual void Function10(); //
virtual void Function11(); //
virtual void Function12(); //
virtual void Function13(); //
virtual void Function14(); //
virtual void Function15(); //
virtual void Function16(); //
virtual void Function17(); //
virtual void Function18(); //
virtual void Function19(); //
virtual void Function20(); //
virtual void Function21(); //
virtual void Function22(); //
virtual void Function23(); //
virtual void Function24(); //
virtual IActorSystem* GetIActorSystem();
virtual void Function26(); //
virtual void Function27(); //
virtual void Function28(); //
virtual void Function29(); //
virtual void Function30(); //
virtual void Function31(); //
virtual void Function32(); //
virtual void Function33(); //
virtual void Function34(); //
virtual void Function35(); //
virtual void Function36(); //
virtual void Function37(); //
virtual void Function38(); //
virtual void Function39(); //
virtual void Function40(); //
virtual void Function41(); //
virtual void Function42(); //
virtual void Function43(); //
virtual void Function44(); //
virtual void Function45(); //
virtual void Function46(); //
virtual void Function47(); //
virtual void Function48(); //
virtual void Function49(); //
virtual void Function50(); //
virtual void Function51(); //
virtual void Function52(); //
virtual void Function53(); //
virtual void Function54(); //
virtual void Function55(); //
virtual void Function56(); //
virtual void Function57(); //
virtual void Function58(); //
virtual void Function59(); //
virtual void Function60(); //
virtual void Function61(); //
virtual void Function62(); //
virtual void Function63(); //
virtual void Function64(); //
virtual void Function65(); //
virtual void Function66(); //
virtual void Function67(); //
virtual void Function68(); //
virtual void Function69(); //
virtual void Function70(); //
virtual void Function71(); //
virtual void Function72(); //
virtual void Function73(); //
virtual void Function74(); //
virtual void Function75(); //
virtual void Function76(); //
virtual void Function77(); //
virtual void Function78(); //
virtual void Function79(); //
virtual void Function80(); //
virtual void Function81(); //
virtual void Function82(); //
virtual void Function83(); //
virtual void Function84(); //
virtual void Function85(); //
virtual void Function86(); //
virtual void Function87(); //
virtual void Function88(); //
virtual void Function89(); //
virtual void Function90(); //
virtual void Function91(); //
virtual void Function92(); //
virtual void Function93(); //
virtual void Function94(); //
virtual void Function95(); //
virtual void Function96(); //
virtual void Function97(); //
virtual void Function98(); //
virtual void Function99(); //
virtual void Function100(); //
virtual void Function101(); //
virtual void Function102(); //
virtual void Function103(); //
virtual void Function104(); //
virtual void Function105(); //
virtual void Function106(); //
virtual void Function107(); //
virtual void Function108(); //
virtual void Function109(); //
virtual void Function110(); //
virtual void Function111(); //
virtual void Function112(); //
virtual void Function113(); //
virtual void Function114(); //
virtual void Function115(); //
virtual void Function116(); //
virtual void Function117(); //
virtual void Function118(); //
virtual void Function119(); //
virtual void Function120(); //
virtual void Function121(); //
virtual void Function122(); //
virtual void Function123(); //
virtual void Function124(); //
virtual void Function125(); //
virtual void Function126(); //
virtual void Function127(); //
virtual void Function128(); //
virtual void Function129(); //