#pragma once
#pragma comment(lib, "Winmm.lib" )
#pragma comment(lib, "d3dx9.lib")
#pragma comment(lib,"d3dx10.lib")
#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "d3dx11.lib")
#pragma comment(lib,"ntdll.lib")
#include <windows.h>
#include <TlHelp32.h>
#include <d3d11.h>
#include <d3dx11.h>
#include <d3d9.h>
#include <d3dx9math.h>
#include <d3dx10.h>
#include <intrin.h>
#include <ddraw.h>
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <tchar.h>
#include <vector>
#include <strstream>
#include <iomanip>
#include <math.h>
#include <LMCons.h>
#include <process.h>
#include <time.h>
#include "psapi.h"
#include <tlhelp32.h>
#include <sstream>
#include <Shellapi.h>
#include <tchar.h>
#include <stddef.h>
#include <Vector>
#include <TCHAR.H>
#define OFFSET_DEBUGRENDERER 0x009AC160
#define OFFSET_DrawText 0x009AD390
#define OFFSET_DrawLine 0x009ACF30
#define OFFSET_DrawLineRect2D 0x009ACF80
#define OFFSET_DrawRect2D 0x009AD130
#define OFFSET_CLIENTGAMECONTEXT 0x02071C30
#define OFFSET_GAMERENDERER 0x020764CC
#define OFFSET_DXRENDERER 0x020E24E0
#define OFFSET_SSMODULE 0x020E64EC
#define OFFSET_SYNCEDBFSETTINGS 0x01F96E20
#define IsOnDeployScreen *(BYTE*)0x01FCE142
namespace fb
{
#pragma region _DebugRenderer
template< typename T > class Tuple2;
template <typename T>
class Tuple2
{
public:
T Element1;
T Element2;
public:
Tuple2(T _Element1, T _Element2)
{
Element1=_Element1;
Element2=_Element2;
}
};
class Color32
{
public:
Color32( D3DCOLOR dwColor )
{
this->a = (dwColor >> 24) & 0xff;
this->r = (dwColor >> 16) & 0xff;
this->g = (dwColor >> 8) & 0xff;
this->b = (dwColor) & 0xff;
}
Color32( unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha ) :
r( red ), g( green ), b( blue ), a( alpha )
{
}
static Color32 Yellow()
{
return Color32( 255, 255, 000, 255 );
}
static Color32 White()
{
return Color32( 255, 255, 255, 255 );
}
static Color32 Black()
{
return Color32( 0, 0, 0, 255 );
}
static Color32 Red()
{
return Color32( 255, 0, 0, 255 );
}
static Color32 Green()
{
return Color32( 0, 255, 0, 255 );
}
static Color32 Blue()
{
return Color32( 0, 0, 255, 255 );
}
private:
union
{
struct
{
unsigned char r;
unsigned char g;
unsigned char b;
unsigned char a;
};
unsigned long color;
};
};
#ifdef OFFSET_DEBUGRENDERER
class DebugRenderer2
{
public:
static DebugRenderer2* Singleton(void)
{
typedef DebugRenderer2* (__stdcall* fb__DebugRenderManager_getThreadContext_t)(void);
fb__DebugRenderManager_getThreadContext_t fb__DebugRenderManager_getThreadContext=(fb__DebugRenderManager_getThreadContext_t)OFFSET_DEBUGRENDERER;
return fb__DebugRenderManager_getThreadContext();
}
#ifdef OFFSET_DrawText
void drawText(int x, int y, Color32 color, char* text, float scale)
{
typedef void (__thiscall *tdrawText)(DebugRenderer2*,int, int, char*, Color32,float);
tdrawText mdrawText=(tdrawText)OFFSET_DrawText;
mdrawText(this,x,y,text,color,scale);
}
#endif
#ifdef OFFSET_DrawLine
void DrawLine( float x1, float y1, float x2, float y2, Color32 color )
{
Tuple2< float > tupFrom =Tuple2< float >( x1, y1 );
Tuple2< float > tupTo = Tuple2< float >( x2, y2 );
typedef void ( __thiscall* tDrawLine )( DebugRenderer2*, Tuple2< float >*, Tuple2< float >*, Color32 );
tDrawLine oDrawLine = ( tDrawLine )OFFSET_DrawLine;
oDrawLine( this, &tupFrom, &tupTo, color );
}
void DrawBox2D(float x1, float y1, float w, float h, Color32 color)
{
DrawLine(x1,y1,x1+w,y1,color);
DrawLine(x1+w,y1,x1+w,y1+h,color);
DrawLine(x1+w,y1+h,x1,y1+h,color);
DrawLine(x1,y1+h,x1,y1,color);
}
void DrawVec3Line(D3DXVECTOR3 start, D3DXVECTOR3 end,Color32 color)
{
DrawLine(start.x,start.y,end.x ,end.y,color);
}
#endif
#ifdef OFFSET_DrawRect2D
void DrawRect( float x, float y, float width, float height, Color32 color )
{
Tuple2< float > tupMin = Tuple2< float >( x, y );
Tuple2< float > tupMax = Tuple2< float >( x + width, y + height );
typedef void ( __thiscall* tDrawRectangle )( DebugRenderer2*, Tuple2< float >*, Tuple2< float >*, Color32 );
tDrawRectangle oDrawRectangle = ( tDrawRectangle )OFFSET_DrawRect2D;
oDrawRectangle( this, &tupMin, &tupMax, color );
}
#endif
};
#endif
#pragma endregion _DebugRenderer
template< class T > class WeakPtr
{
public:
T** m_ptr;
public:
T* GetData()
{
if (!m_ptr)
return NULL;
if (!*m_ptr)
return NULL;
T* ptr = *m_ptr;
return (T*)((DWORD64)ptr - 0x4);
}
};
// Generated using ReClass 2015
class ClientGameContext;
class ClientLevel;
class ClientPlayerManager;
class ClientPlayer;
class AxisAlignedBox;
class CharacterPhysicsEntity;
class ClientSoldierEntity;
class SoldierEntityData;
class BFClientSoldierHealthComponent;
class ClientAntAnimatableComponent;
class ClientSoldierWeaponsComponent;
class ClientAnimatedSoldierWeaponHandler;
class ClientSoldierWeapon;
class SoldierWeaponData;
class ClientWeapon;
class WeaponFiringData;
class ShotConfigData;
class BulletEntityData;
class FiringFunctionData;
class ClientSoldierAimingSimulation;
class SoldierAimingSimulationData;
class AimAssist;
class WeaponFiring;
class WeaponSway;
class ClientVehicleEntity;
class VehicleEntityData;
class VehicleHudData;
class ClientChassisComponent;
class ClientRagDollComponent;
class QuatTransform;
class Deviation;
class SyncedBFSettings;
class GameRenderer;
class RenderView;
class DxRenderer;
class Screen;
class ClientSoldierParachuteComponent;
class ClientSpottingTargetComponent;
class ClientGameContext
{
public:
char pad_0x0000[0x14]; //0x0000
ClientLevel* m_pClientLevel; //0x0014
char pad_0x0018[0x18]; //0x0018
ClientPlayerManager* m_clientPlayerManager; //0x0030
char pad_0x0034[0x3F0]; //0x0034
__forceinline static ClientGameContext* GetInstance()
{
return *(ClientGameContext**)(OFFSET_CLIENTGAMECONTEXT);
}
};//Size=0x0424
class ClientLevel
{
public:
char pad_0x0000[0x2C]; //0x0000
char* m_pLevelName; //0x002C
char pad_0x0030[0x54]; //0x0030
};//Size=0x0084
class ClientPlayerManager
{
public:
char pad_0x0000[0x2B8]; //0x0000
ClientPlayer* m_pLocalPlayer; //0x02B8
ClientPlayer** m_ppPlayers; //0x02BC
};//Size=0x0098
class ClientPlayer
{
public:
DWORD m_vtable; //0x0000
char pad_0x0004[0xC]; //0x0004
char* m_pName; //0x0010
char pad_0x0014[0x14]; //0x0014
char m_szName[16]; //0x0028
char pad_0x0038[0xE1C]; //0x0038
__int32 m_TeamID; //0x0E54
char pad_0x0E58[0x88]; //0x0E58
WeakPtr<ClientSoldierEntity> m_soldier; //0x0EE0
char pad_0x0EE4[0x4]; //0x0EE4
ClientVehicleEntity* m_pAttachedControllable; //0x0EE8
DWORD m_attachedEntryId; //0x0EEC
ClientSoldierEntity* m_pControlledControllable; //0x0EF0
char pad_0x0EF4[0x2F4]; //0x0EF4
};//Size=0x11E8
class AxisAlignedBox
{
public:
D3DXVECTOR4 min; //0x0000
D3DXVECTOR4 max; //0x0010
};//Size=0x0020
class QuatTransform
{
public:
D3DXVECTOR4 m_TransAndScale; //0x0000
D3DXVECTOR4 m_Rotation; //0x0010
};//Size=0x0020
enum BONES
{
BONE_HEAD = 104,
BONE_NECK = 142,
BONE_SPINE2 = 7,
BONE_SPINE1 = 6,
BONE_SPINE = 5,
BONE_LEFTSHOULDER = 9,
BONE_RIGHTSHOULDER = 109,
BONE_LEFTELBOWROLL = 11,
BONE_RIGHTELBOWROLL = 111,
BONE_LEFTHAND = 15,
BONE_RIGHTHAND = 115,
BONE_LEFTKNEEROLL = 188,
BONE_RIGHTKNEEROLL = 197,
BONE_LEFTFOOT = 184,
BONE_RIGHTFOOT = 198
};
class ClientRagDollComponent
{
public:
char pad_0x0000[0x4C]; //0x0000
QuatTransform* m_LocalTransform; //0x004C
QuatTransform* m_WorldTransform; //0x0050
char pad_0x0054[0xC]; //0x0054
QuatTransform* m_ActiveWorldTransforms; //0x0060
QuatTransform* m_ActiveLocalTransforms; //0x0064
__int32 m_Slot; //0x0068
__int32 m_ReaderIndex; //0x006C
unsigned char m_ValidTransforms; //0x0070
unsigned char m_PoseUpdateEnabled; //0x0071
unsigned char m_PoseNeeded; //0x0072
};//Size=0x0073
class ClientSoldierEntity
{
public:
virtual void* GetType(); // TypeInfo*
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 GetTransform(D3DXMATRIX& mTransform);// 23
char pad_0x0004[0x14]; //0x0004
SoldierEntityData* m_pSoldierEntityData; //0x0018
char pad_0x001C[0x94]; //0x001C
__int32 m_pClientCharacterSpawnEntity; //0x00B0
char pad_0x00B4[0x4]; //0x00B4
BFClientSoldierHealthComponent* m_pBFClientSoldierHealthComponent; //0x00B8
__int32 m_pBFClientSoldierPhysicsComponent; //0x00BC
char pad_0x00C0[0x3C]; //0x00C0
CharacterPhysicsEntity* m_pCharacterPhysicsEntity; //0x00FC
char pad_0x0100[0x14]; //0x0100
ClientPlayer* m_pPlayer; //0x0114
ClientAntAnimatableComponent* m_pClientAntAnimatableComponent[2]; //0x0118
__int32 m_pVeniceClientSoldierCameraComponent; //0x0120
char pad_0x0124[0xC]; //0x0124
__int32 m_pSoldierBlueprint; //0x0130
char pad_0x0134[0x20]; //0x0134
__int32 m_pVeniceClientSoldierCameraComponent_; //0x0154
char pad_0x0158[0x1FC]; //0x0158
float m_authorativeYaw; //0x0354
float m_authorativePitch; //0x0358
char pad_0x035C[0xC]; //0x035C
__int32 m_poseType; //0x0368
unsigned char m_EngineChams; //0x036C set to 4 for engine glowing
char pad_0x036D[0x5B]; //0x036D
ClientSoldierWeaponsComponent* m_pClientSoldierWeaponsComponent; //0x03C8
__int32 m_pClientSoldierBodyComponent; //0x03CC
ClientRagDollComponent* m_pClientRagdollComponent; //0x03D0
__int32 m_pClientSoldierBreathControlComponent; //0x03D4
__int32 m_pClientVehicleEntryListenerComponent; //0x03D8
char pad_0x03DC[0xC]; //0x03DC
float m_timeSinceLastSprinted; //0x03E8
unsigned char m_sprinting; //0x03EC
unsigned char m_occluded; //0x03ED
char pad_0x03EE[0x2FE]; //0x03EE
ClientSoldierParachuteComponent* m_pClientSoldierParachuteComponent; //0x06EC
char pad_0x06F0[0x3C]; //0x06F0
__int32 m_pClientPlayerEntryComponent; //0x072C
char pad_0x0730[0xC]; //0x0730
__int32 m_pClientSpottingComponent; //0x073C
char pad_0x0740[0xC]; //0x0740
ClientSpottingTargetComponent* m_pClientSpottingTargetComponent; //0x074C
bool GetBonePos( int BoneId, D3DXVECTOR3 *vOut );
ClientSoldierWeapon* GetActiveWeapon();
};//Size=0x04B4
class SoldierEntityData
{
public:
};//Size=0x0000
class CharacterPhysicsEntityCollisionShapes
{
public:
char pad_0x0000[0x10]; //0x0000
AxisAlignedBox m_Aabbs[3]; //0x0010
};//Size=0x0030
class CharacterPoseData
{
public:
char pad_0x0000[0xC]; //0x0000
float m_StepHeight; //0x000C
char pad_0x0010[0x4]; //0x0010
D3DXVECTOR4 m_EyePosition; //0x0014
D3DXVECTOR4 m_CollisionBoxMaxExpand; //0x0024
D3DXVECTOR4 m_CollisionBoxMinExpand; //0x0034
char pad_0x0044[0x8]; //0x0044
};//Size=0x004C
class CharacterPhysicsEntity
{
public:
char pad_0x0000[0x6C]; //0x0000
__int32 m_currentPose; //0x006C
__int32 m_changingToPose; //0x0070
float m_poseTransitionTimer; //0x0074
CharacterPhysicsEntityCollisionShapes* m_CollisionShapes; //0x0078
char pad_0x007C[0x28]; //0x007C
DWORD m_pCharacterPhysicsData; //0x00A4
char pad_0x00A8[0x14]; //0x00A8
CharacterPoseData* m_pCharacterPoseData[3]; //0x00BC
};//Size=0x00C8
class BFClientSoldierHealthComponent
{
public:
char pad_0x0000[0x10]; //0x0000
float m_flHealth; //0x0010
float m_flMaxHealth; //0x0014
char pad_0x0018[0x4]; //0x0018
};//Size=0x001C
class ClientAntAnimatableComponent
{
public:
};//Size=0x0000
class ClientSoldierWeaponsComponent
{
public:
char pad_0x0000[0x8]; //0x0000
__int32 m_pSoldierWeaponsComponentData; //0x0008
char pad_0x000C[0x4]; //0x000C
__int32 m_pClientPlayerEntryComponent; //0x0010
char pad_0x0014[0x4FC]; //0x0014
ClientAnimatedSoldierWeaponHandler* m_handler; //0x0510
char pad_0x0514[0x10]; //0x0514
ClientAntAnimatableComponent* m_animatableComponent[2]; //0x0524
ClientSoldierEntity* m_pClientSoldierEntity; //0x052C
char pad_0x0530[0xE4]; //0x0530
__int32 m_activeSlot; //0x0614
__int32 m_lastActiveSlot; //0x0618
__int32 m_lastActiveWeaponSlot; //0x061C
char pad_0x0620[0x54]; //0x0620
__int32 m_currentZoomLevel; //0x0674
__int32 m_zoomLevelMax; //0x0678
__int32 m_zeroingDistanceLevel; //0x067C
char pad_0x0680[0x204]; //0x0680
float m_timeSinceLastShot; //0x0884
char pad_0x0888[0xC]; //0x0888
};//Size=0x0894
class ClientAnimatedSoldierWeaponHandler
{
public:
ClientSoldierWeapon* m_WeaponList[7]; //0x0000
};//Size=0x0004
class ClientSoldierWeapon
{
public:
char pad_0x0000[0x18]; //0x0000
SoldierWeaponData* m_pSoldierWeaponData; //0x0018
char pad_0x001C[0x24B8]; //0x001C
ClientSoldierAimingSimulation* m_authorativeAiming; //0x24D4
char pad_0x24D8[0xC]; //0x24D8
ClientWeapon* m_pClientWeapon; //0x24E4
char pad_0x24E8[0x8]; //0x24E8
WeaponFiring* m_PredictedFiring; //0x24F0
char pad_0x24F4[0x4]; //0x24F4
ClientSoldierWeaponsComponent* m_pClientSoldierWeaponsComponent; //0x24F8
char pad_0x24FC[0x10]; //0x24FC
WeaponSway* GetWeaponSway();
BulletEntityData* GetBulletEntityData();
FiringFunctionData* GetFiringFunctionData();
};//Size=0x250C
class SoldierWeaponData
{
public:
char pad_0x0000[0x4]; //0x0000
};//Size=0x0004
class ClientWeapon
{
public:
char pad_0x0000[0x4]; //0x0000
__int32 m_pWeaponData; //0x0004
char pad_0x0008[0x4]; //0x0008
WeaponFiringData* m_pWeaponFiringData; //0x000C
__int32 m_pModifier; //0x0010
char pad_0x0014[0xC]; //0x0014
D3DXVECTOR4 m_moveSpeed; //0x0020
D3DXMATRIX m_shootSpace; //0x0030
D3DXMATRIX m_shootSpaceIdentity; //0x0070
char pad_0x00B0[0x118]; //0x00B0
float m_cameraFov; //0x01C8
float m_weaponFov; //0x01CC
float m_fovScaleFactor; //0x01D0
char pad_0x01D4[0x8]; //0x01D4
DWORD m_zoomLevel; //0x01DC gets 0 when out of zoom
DWORD m_zoomMaxLevel; //0x01E0
};//Size=0x01E4
class WeaponFiringData
{
public:
char pad_0x0000[0x8]; //0x0000
FiringFunctionData* m_pFiringFunctionData; //0x0008
};//Size=0x000C
class ShotConfigData
{
public:
D3DXVECTOR4 m_InitialPosition; //0x0000
D3DXVECTOR4 m_InitialDirection; //0x0010
D3DXVECTOR4 m_InitialSpeed; //0x0020
char pad_0x0030[0xC]; //0x0030
BulletEntityData* m_ProjectileData; //0x003C
char pad_0x0040[0x10]; //0x0040
float m_SpawnDelay; //0x0050
__int32 m_NumberOfBulletsPerShell; //0x0054
__int32 m_NumberOfBulletsPerShot; //0x0058
__int32 m_NumberOfBulletsPerBurst; //0x005C
char pad_0x0060[0x9C]; //0x0060
};//Size=0x00FC
class BulletEntityData
{
public:
char pad_0x0000[0xF8]; //0x0000
float m_Gravity; //0x00F8
char pad_0x00FC[0x20]; //0x00FC
float m_StartDamage; //0x011C
float m_EndDamage; //0x0120
float m_DamageFalloffStartDistance; //0x0124
float m_DamageFalloffEndDistance; //0x0128
char pad_0x012C[0x758]; //0x012C
};//Size=0x0884
class FiringFunctionData
{
public:
char pad_0x0000[0x54]; //0x0000
ShotConfigData m_ShotConfigData; //0x0054
char pad_0x0150[0xAC]; //0x0150
};//Size=0x01FC
class ClientSoldierAimingSimulation
{
public:
SoldierAimingSimulationData* m_data; //0x0000
char pad_0x0004[0x4]; //0x0004
AimAssist* m_fpsAimer; //0x0008
float m_yaw; //0x000C
float m_pitch; //0x0010
float m_aimYawTimer; //0x0014
float m_aimPitchTimer; //0x0018
D3DXVECTOR2 m_sway; //0x001C
char pad_0x0024[0x54]; //0x0024
};//Size=0x0078
class SoldierAimingSimulationData
{
public:
};//Size=0x0000
class AimAssist
{
public:
char pad_0x0000[0xC]; //0x0000
float m_yaw; //0x000C
float m_pitch; //0x0010
char pad_0x0014[0x30]; //0x0014
};//Size=0x0044
class WeaponFiring
{
public:
char pad_0x0000[0x3C]; //0x0000
WeaponSway* m_pWeaponSway; //0x003C
char pad_0x0040[0x54]; //0x0040
WeaponFiringData* m_pPrimaryFire; //0x0094
char pad_0x0098[0xC]; //0x0098
DWORD m_weaponState; //0x00A4
DWORD m_lastWeaponState; //0x00A8
DWORD m_nextWeaponState; //0x00AC
char pad_0x00B0[0x40]; //0x00B0
__int32 m_projectilesLoaded; //0x00F0
__int32 m_projectilesInMagazines; //0x00F4
__int32 m_numberOfProjectilesToFire; //0x00F8
char pad_0x00FC[0x388]; //0x00FC
};//Size=0x0484
class Deviation
{
public:
float m_pitch; //0x0000
float m_yaw; //0x0004
float m_roll; //0x0008
float m_transY; //0x000C
};//Size=0x0010
class WeaponSway
{
public:
char pad_0x0000[0xC8]; //0x0000
Deviation m_currentRecoilDeviation; //0x00C8
float m_timeSinceLastShot; //0x00D8
char pad_0x00DC[0x9C]; //0x00DC
unsigned char m_isFiring; //0x0178
char pad_0x0179[0x3]; //0x0179
};//Size=0x017C
class ClientVehicleEntity
{
public:
DWORD N00001A67; //0x0000
char pad_0x0004[0x14]; //0x0004
VehicleEntityData* m_pVehicleEntityData; //0x0018
char pad_0x001C[0x94]; //0x001C
__int32 m_pClientVehicleSpawnEntity; //0x00B0
char pad_0x00B4[0x4]; //0x00B4
__int32 m_pClientVehicleHealthComponent; //0x00B8
__int32 m_pClientVehiclePhysicsComponen; //0x00BC
char pad_0x00C0[0xBC]; //0x00C0
__int32 m_pDynamicPhysicsEntity; //0x017C also know as just PhysicEntity* m_pPhysicEntity
float m_waterLevel; //0x0180
float m_terrainLevel; //0x0184
float m_waterLevelUpdateTimer; //0x0188
float m_terrainLevelUpdateTime; //0x018C
AxisAlignedBox m_childrenAABB; //0x0190
char pad_0x01B0[0x10]; //0x01B0
D3DXVECTOR4 m_Velocity; //0x01C0
D3DXVECTOR4 m_prevVelocity; //0x01D0
char pad_0x01E0[0xA0]; //0x01E0
ClientChassisComponent* m_pClientChassisComponent; //0x0280
};//Size=0x0284
class VehicleHudData
{
public:
D3DXVECTOR4 m_CustomizationOffset; //0x0000
__int32 m_Customization; //0x0010
char pad_0x0014[0x4]; //0x0014
char* m_IconName; //0x0018
char pad_0x001C[0x14]; //0x001C
};//Size=0x0030
class VehicleEntityData
{
public:
char pad_0x0000[0xC0]; //0x0000
VehicleHudData m_HudData; //0x00C0
char pad_0x00F0[0x20]; //0x00F0
char* m_ControllableType; //0x0110
float m_DisabledDamageThreshold; //0x0114
float m_PreDestructionDamageThreshold; //0x0118
char pad_0x011C[0xD4]; //0x011C
char* m_NameSid; //0x01F0
__int32 m_MaxPlayersInVehicle; //0x01F4
float m_MinSpeedForMineActivate; //0x01F8
char pad_0x01FC[0xC]; //0x01FC
};//Size=0x0208
class ClientChassisComponent
{
public:
char pad_0x0000[0x8]; //0x0000
__int32 m_pChassisComponentData; //0x0008
char pad_0x000C[0x4]; //0x000C
__int32 m_pClientPlayerEntryComponent; //0x0010
char pad_0x0014[0x8]; //0x0014
__int32 m_pDynamicPhysicsEntity; //0x001C same as in clientvehicleentity
char pad_0x0020[0x120]; //0x0020
D3DXVECTOR4 m_linearVelocity; //0x0140
D3DXVECTOR4 m_angularVelocity; //0x0150
char pad_0x0160[0x8]; //0x0160
};//Size=0x0168
class SyncedBFSettings
{
public:
char pad_0x0000[0x38]; //0x0000
unsigned char m_AllUnlocksUnlocked; //0x0038
unsigned char m_NoMinimap; //0x0039
unsigned char m_NoHud; //0x003A
unsigned char m_NoMinimapSpotting; //0x003B
unsigned char m_No3dSpotting; //0x003C
unsigned char m_NoNameTag; //0x003D
unsigned char m_OnlySquadLeaderSpawn; //0x003E
unsigned char m_TeamSwitchingAllowed; //0x003F
__forceinline static SyncedBFSettings* GetInstance()
{
return *(SyncedBFSettings**)( OFFSET_SYNCEDBFSETTINGS );
}
};//Size=0x0040
class GameRenderer
{
public:
char pad_0x0000[0x24]; //0x0000
__int32 m_GameRenderSettings; //0x0024 not sure
char pad_0x0028[0x8]; //0x0028
RenderView* m_pRenderView; //0x0030
char pad_0x0034[0x10C]; //0x0034
__forceinline static GameRenderer* GetInstance()
{
return *(GameRenderer**)(OFFSET_GAMERENDERER);
}
};//Size=0x0140
class RenderView
{
public:
char pad_0x0000[0x420]; //0x0000
D3DXMATRIX m_ViewProj; //0x0420
char pad_0x0460[0x24]; //0x0460
};//Size=0x0484
class DxRenderer
{
public:
char pad_0x0000[0x20]; //0x0000
Screen* m_pScreen; //0x0020
char pad_0x0024[0x74]; //0x0024
ID3D11Device* m_pDevice; //0x0098
ID3D11DeviceContext* m_pContext; //0x009C
char pad_0x00A0[0x120]; //0x00A0
char* m_GPU_Name; //0x01C0
char pad_0x01C4[0x2C]; //0x01C4
char* m_GPU_Name2; //0x01F0
char pad_0x01F4[0x8]; //0x01F4
char m_szGPU_Name[256]; //0x01FC
__forceinline static DxRenderer* GetInstance()
{
return *(DxRenderer**)(OFFSET_DXRENDERER);
}
};//Size=0x02FC
class Screen
{
public:
char pad_0x0000[0x54]; //0x0000
__int32 m_Game_Width; //0x0054
__int32 m_Game_Height; //0x0058
char pad_0x005C[0x3C]; //0x005C
__int32 m_GameWindow_Width; //0x0098
__int32 m_GameWindow_Height; //0x009C
char pad_0x00A0[0x20]; //0x00A0
IDXGISwapChain* m_pSwapChain; //0x00C0
};//Size=0x00C4
class AimingConstraints
{
public:
float m_MinYaw; //0x0000
float m_MaxYaw; //0x0004
float m_MinPitch; //0x0008
float m_MaxPitch; //0x000C
float m_PitchOffset; //0x0010
float m_YawOffset; //0x0014
float m_MinYawDefault; //0x0018
float m_MaxYawDefault; //0x001C
};//Size=0x0020
class SoldierParachuteComponentData
{
public:
};//Size=0x0000
class ClientSoldierParachuteComponent
{
public:
char pad_0x0000[0x8]; //0x0000
SoldierParachuteComponentData* m_pSoldierParachuteComponentData; //0x0008
char pad_0x000C[0xA0]; //0x000C
DWORD m_pClientAntAnimatableComponent; //0x00AC
DWORD m_pCharacterPhysicsEntity; //0x00B0
AimingConstraints* m_pAimingContraints; //0x00B4
char pad_0x00B8[0x48]; //0x00B8
__int32 m_State; //0x0100
D3DXVECTOR2 m_View; //0x0104
D3DXVECTOR2 m_DeltaView; //0x010C
D3DXVECTOR2 m_AuthoratativeView; //0x0114
bool m_SoldierInParachute; //0x011C
char pad_0x011D[0x7]; //0x011D
//Allows you to have a 360° view, perfect for Aimbotting
//credits to ICY
void __forceinline UnlockParachuteView( )
{
if ( this->m_pAimingContraints )
{
this->m_pAimingContraints->m_MinYaw = -180.f;
this->m_pAimingContraints->m_MaxYaw = 180.f;
this->m_pAimingContraints->m_MinPitch = -180.f;
this->m_pAimingContraints->m_MaxPitch = 180.f;
this->m_pAimingContraints->m_MinYawDefault = -180.f;
this->m_pAimingContraints->m_MaxYawDefault = 180.f;
}
}
};//Size=0x0124
class ClientSpottingTargetComponent
{
public:
char pad_0x0000[0x8]; //0x0000
__int32 m_pSpottingTargetComponentData; //0x0008
char pad_0x000C[0xD8]; //0x000C
};//Size=0x00E4
}
#define ValidPointer( pointer ) ( pointer && pointer !=0 && HIWORD( pointer ) )