Game Client (BO2): Difference between revisions
No edit summary |
No edit summary |
||
| Line 2: | Line 2: | ||
[[Category:BO2]] | [[Category:BO2]] | ||
<syntaxhighlight lang="cpp"> | <syntaxhighlight lang="cpp"> | ||
/* gclient_s->buttons.buttons */ | |||
#define __jump 0x00200000 | |||
#define __stance 0x00000200 | |||
#define __use 0x04000000 | |||
#define __triangle 0x00000008 | |||
#define __attack 0x80000000 | |||
#define __ads 0x00100000 | |||
#define __prone 0x00800000 | |||
#define __crouch 0x00400000 | |||
#define __frag 0x00020000 | |||
#define __tactical 0x00010000 | |||
#define __melee 0x20000000 | |||
#define __sprint 0x40000000 | |||
/* gclient_s->actionSlots.buttons2 */ | |||
#define __dpadup 0x00040000 | |||
#define __dpaddown 0x00020000 | |||
#define __dpadleft 0x00010000 | |||
#define __dpadright 0x00008000 | |||
enum team_t | enum team_t | ||
{ | { | ||
Revision as of 13:35, 20 November 2014
/* gclient_s->buttons.buttons */
#define __jump 0x00200000
#define __stance 0x00000200
#define __use 0x04000000
#define __triangle 0x00000008
#define __attack 0x80000000
#define __ads 0x00100000
#define __prone 0x00800000
#define __crouch 0x00400000
#define __frag 0x00020000
#define __tactical 0x00010000
#define __melee 0x20000000
#define __sprint 0x40000000
/* gclient_s->actionSlots.buttons2 */
#define __dpadup 0x00040000
#define __dpaddown 0x00020000
#define __dpadleft 0x00010000
#define __dpadright 0x00008000
enum team_t
{
TEAM_FREE = 0x0,
TEAM_ALLIES = 0x1,
TEAM_AXIS = 0x2,
TEAM_THREE = 0x3,
TEAM_FOUR = 0x4,
TEAM_FIVE = 0x5,
TEAM_SIX = 0x6,
TEAM_SEVEN = 0x7,
TEAM_EIGHT = 0x8,
TEAM_MAX = 0x9
};
enum sessionState_t
{
SESS_STATE_PLAYING = 0x0,
SESS_STATE_DEAD = 0x1,
SESS_STATE_SPECTATOR = 0x2,
SESS_STATE_INTERMISSION = 0x3,
};
enum clientConnected_t
{
CON_DISCONNECTED = 0x0,
CON_CONNECTING = 0x1,
CON_CONNECTED = 0x2,
};
struct VehicleState
{
float origin[3];//0
float angles[3];//0xC
float velocity[3];//0x18
float angVelocity[3];//0x24
float tilt[2];//0x30
float tiltVelocity[2];//0x38
float targetHeightDelta;//0x40
float lastGroundHeight;//0x44
int entity;//0x48
int flags;//0x4C
};
struct SprintState
{
int sprintButtonUpRequired;//0x0
int sprintDelay;//0x4
int lastSprintStart;//0x8
int lastSprintEnd;//0xC
int sprintStartMaxLength;//0x10
int sprintDuration;//0x14
int sprintCooldown;//0x18
};
struct MantleState
{
float yaw; //0x0
int timer; //0x4
int transIndex; //0x8
int flags; //0xC
};
struct playerState_s
{
int commandTime;//0x0
int pm_type;//0x4
int bobCycle; //0x8
int pm_flags; //0xC
long long weapFlags;//0x10
int otherFlags;//0x18
int pm_time;//0x1C
short ownerNum;//0x20
short name;//0x22
char progress;//0x24
vec3_t origin;//0x28
vec3_t velocity;//0x34
int playerCamEnt; //0x40
int playerCamTag; //0x44
char unk1[4]; //0x48
int weaponTime;//0x4C
int weaponDelay;//0x50
int weaponTimeLeft;//0x54
char unk2[4];//0x58
int weaponIdleTime;//0x5C
int grenadeTimeLeft;//0x60
int throwBackGrenadeOwner;//0x64
int throwBackGrenadeTimeLeft;//0x68
int weaponRestrictKickTime;//0x6C
char unk3[0x14];//0x60
bool bThirdPerson;//0x84
int foliageSoundTime;//0x88
int gravity;//0x8C
float leanf;//0x90
int speed;//0x94
float delta_angles[3];//0x98
int groundEntityNum;//0xA4
int moverEntityNum;//0xA8
int moverTimestamp;//0xAC
char unk4[4];//0xB0
float vLadderVec[3];//0xB4
int jumpTime;//0xC0
float jumpOriginZ;//0xC4
int slideTime;//0xC8
int moveType;//0xCC
int legsTimer;//0xD0
int torsoTimer;//0xD4
int legsAnim;//0xD8
int torsoAnim;//0xDC
char unk5[4];//0xE0
int damageTimer;//0xE4
int damageDuration;//0xE8
int dmgDirection;//0xEC
int dmgType;//0xF0
int corpseIndex;//0xF4
int movementDir;//0xF8
int eFlags;//0xFC
int eFlags2;//0x100
VehicleState vehicleState;//0x104
char unk6[4];//0x154
short predictableEventSequence;//0x158
short predictableEventSequenceOld;//0x15A
int predictableEvents[4];//0x15C
int predictableEventParms[4];//0x16C
short unpredictableEventSequence; //0x17C
short oldUnpredictableEventSequence;//0x17E
int unpredictableEvents[4];//0x180
int unpredictableEventParms[4];//0x190
int clientNum;//0x1A0
int offHandWeapon;//0x1A4
int offhandSecondary;//0x1A8
int offhandPrimary;//0x1AC
int renderOptions;//0x1B0
int momentum;//0x1B4
int weapon;//0x1B8
unsigned int lastStandPrevWeapon;//0x1BC
int lastWeaponAltModeSwitch;//0x1C0
unsigned int stowedWeapon;//0x1C4
char unk7[4];//0x1C8
unsigned int meleeWeapon;//0x1CC
int weaponstate;//0x1D0
int weaponstateLeft;//0x1D4
unsigned int weaponShotCount;//0x1D8
int weaponShotCountLeft;//0x1DC
float fWeaponPosFrac;//0x1E0
int adsDelayTime;//0x1E4
int spreadOverride;//0x1E8
int spreadOverrideState;//0x1EC
int weaponSpinLerp;//0x1F0
int viewmodelIndex;//0x1F4
float viewangles[3];//0x1F8
int viewHeightTarget;//0x204
float viewHeightCurrent;//0x208
int viewHeightLerpTime;//0x20C
int viewHeightLerpTarget;//0x210
int viewHeightLerpDown;//0x214
float viewAngleClampBase[2];//0x218
float viewAngleClampRange[2];//0x220
int damageEvent;//0x228
int damageYaw;//0x22C
int damagePitch;//0x230
int damageCount;//0x234
int health;//0x238
char unk8[0xC];//0x23C
struct
{
int weapon;//0x0
int renderOptions;//0x4
float shootSoundFade;//0x8
char unk0[0xD];//0xC
char model;//0x19
char unk1[0x2]; //0x1A
} heldWeapon[0xF];//0x248
int ammo[0xF];//0x3EC
int ammoClip[0xF];//0x428
float proneDirection;//0x464
float proneDirectionPitch;//0x468
float proneTorsoPitch;//0x46C
int viewlocked;//0x470
short viewlocked_entNum;//0x474
int vehiclePos;//0x478
int vehicleType;//0x47C
int vehicleAnimBoneIndex;//0x480
int linkFlags;//0x484
float unk9[3];//0x488
int cursorHint;//0x494
int cursorHintString;//0x498
int cursorHintEntIndex;//0x49C
int cursorHintWeapon;//0x4A0
int iCompassPlayerInfo;//0x4A4
int spyplaneTypeEnabled;//0x4A8
int satelliteTypeEnabled;//0x4AC
int locationSelectionInfo;//0x4B0
int locationSelectionType;//0x4B4
SprintState sprintState; //0x4B8
float lastDtpEnd;//0x4D4
float fTorsoPitch;//0x4D8
float fWaistPitch;//0x4DC
float holdBreathScale;//0x4E0
int holdBreathTimer;//0x4E4
int chargeShotTimer;//0x4E8
int chargeShotLevel;//0x4EC
int shotsFiredFromChamber;//0x4F0
float quickScopeScale;//0x4F4
int quickScopeTimer;//0x4F8
int clientFields;//0x4FC
int clientFields2;//0x500
int clientFields3;//0x504
int entityStateClientFields;//0x508
float moveSpeedScaleMultiplier;//0x50C
MantleState mantleState;//0x510
int vehicleAnimStage;//0x520
int vehicleEntryPoint;//0x524
int scriptedAnim;//0x528
char unk10[4];//0x52C
int meleeChargeEnt;//0x530
int meleeChargeDist;//0x534
int meleeChargeTime;//0x538
int weapLockFlags;//0x53C
int weapLockedEntnum;//0x540
char unk11[4];//0x544
int perks[2];//0x548
int actionSlotType[4];//0x550
int actionSlotParam[4];//0x560
int inventoryWeapon;//0x570
short wiiumoteAimX;//0x574
short wiiumoteAimY;//0x576
char wiiuControllerType;//0x578
char vehicleDefIndex;//0x579
int entityEventSequence;//0x57C
int weapAnim;//0x580
int weapAnimLeft;//0x584
float aimSpreadScale;//0x588
int shellshockIndex;//0x58C
int shellshockTime;//0x590
int shellshockDuration;//0x594
float dofNearStart;//0x598
float dofNearEnd;//0x59C
float dofFarStart;//0x5A0
float dofFarEnd;//0x5A4
float dofNearBlur;//0x5A8
float dofFarBlur;//0x5AC
float dofViewmodelStart;//0x5B0
float dofViewmodelEnd;//0x5B4
char unk12[0xC];//0x5B8
int adsZoomSelect;//0x5C4
char unk13[4];//0x5C8
int adsZoomLatchState;//0x5CC
int adsPrevZoomSelect;//0x5D0
int adsPrevZoomSelectTime;//0x5D4
int artilleryInboundIconLocation;//0x5D8
float visionSetLerpRatio;//0x5DC
int poisoned;//0x5E0
int binocs;//0x5E4
};
struct button_t
{
int buttons;
int buttons2; // can someone explain this ?
};
struct usercmd_s
{
int serverTime; //0x0
button_t buttons; //0x4
int viewangles[3]; //0xC
int weapon; // 0x18
int offHandIndex; //0x1C
char unk1[4]; //0x20
signed char forwardmove; //0x24
signed char rightmove; //0x25
signed char upmove; //0x26
signed char forwardlook; //0x27
signed char rightlook; //0x28
signed char uplook; //0x29
char unk2[0x12]; //0x2A
};
struct playerTeamState_t
{
int location;
};
struct val64
{
int high; //0x0
int low; //0x4
};
struct clientState_s
{
int clientIndex; //0x0
team_t team; //0x4
team_t ffaTeam; //0x8
int modelindex; //0xC
char unk0[4]; //0x10
int attachModelIndex[6]; //0x14
int attachTagIndex[6]; //0x2C
char name[0x20]; //0x44
float maxSprintTimeMultiplier; //0x64
int rank; //0x68
int prestige; //0x6C
int lastDamageTime; //0x70
int lastStandStartTime; //0x74
int turnedHumanTime; //0x78
int beingRevived; //0x7C
val64 xuid64; //0x80
val64 leagueTeamID64; //0x88
int leagueDivisionID; //0x90
char unk1[4]; //0x94
val64 leagueSubdivisionID64; //0x98
int leagueSubdivisionRank; //0xA0
int perks[2]; //0xA4
int voiceConnectivityBits; //0xAC
char clanAbbrev[8]; //0xB0
int attachedVehEntNum; //0xB8
int attachedVehSeat; //0xBC
int needsRevive; //0xC0
int clanAbbrevEV; //0xC4
int vehAnimState; //0xC8
struct
{
int ping; //0xCC
int status_icon; //0xD0
int place; //0xD4
int score; //0xD8
int kills; //0xDC
int assists; //0xE0
int deaths; //0xE4
int wagerWinnings; //0xE8
int scoreboardColumns[5]; //0xEC
int downs; //0x100
int revives; //0x104
int headshots; //0x108
char unk2[4]; //0x10C
int currentStreak; //0x110
}score;
int clientUIVisibilityFlags; //0x114
int offhandWeaponVisible; //0x118
};
struct clientSession_t
{
sessionState_t sessionState; //0x0
int spectatorClient; //0x4
int killcamEntity; //0x8
int killcamTargetEntity; //0xC
int archiveTime; //0x10
unsigned short scriptPersId; //0x14
clientConnected_t connected; //0x18
usercmd_s cmd; //0x1C
usercmd_s oldcmd; // 0x58
int localClient; //0x94 not sure
int predictItemPickup; //0x98 not sure
char newnetname[0x20]; //0x9C
int maxHealth; //0xBC
int enterTime; //0xC0 not sure
playerTeamState_t teamState; //0xC4 not sure
int voteCount; //0xC8 not sure
int teamVoteCount; //0xCC not sure
float moveSpeedScaleMultiplier; //0xD0
int viewmodelIndex; //0xD4
int noSpectate; //0xD8 not sure
int teamInfo; //0xDC not sure
clientState_s cs; //0xE0
char unk0[4]; //0x1FC
int psOffsetTime; //0x200
};
struct gclient_s
{
playerState_s ps; //0x0
char unk0[0x5420 - sizeof(playerState_s)];
clientSession_t sess; //0x5420
int _invalid; //0x5624 //not sure
int none; //0x5628 //not sure
int score; //0x562C
int kills; //0x5630
int deaths; //0x5634
int assists; //0x5638
int defends; //0x563C
int plants; //0x5640
int defuses; //0x5644
int returns; //0x5648
int captures; //0x564C
int destructions; //0x5650
int kdration; //0x5654
int survived; //0x5658
int stabs; //0x565C
int tomahawks; //0x5660
int humiliated; //0x5664
int x2score; //0x5668
int headshots; //0x566C
int downs; //0x5670
int revives; //0x5674
int agrkills; //0x5678
int hacks; //0x567C
int pointstowin; //0x5680
int killsconfirmed; //0x5684
int killsdenied; //0x5688
char unk1[4]; //0x568C
int spectatorClient; //0x5690
int mFlags; //0x5694
int lastCmdTime; //0x5698
button_t buttons; //0x569C
button_t latchedButtons; //0x56A4
button_t buttonsSinceLastFrame; //0x56AC
button_t actionSlots; //0x56B4
float fGunPitch; //0x56BC
float fGunYaw; //0x56C0
char unk3[4]; //0x56C4
float damage_from[3]; //0x56C8
char unk4[4]; //0x56D4
int inactivityTime; //0x56D8
int inactivityWarning; //0x56DC
char unk5[0x2A]; //0x56E0
bool linkCollision; //0x570A
char linkTag; //0x570B
float viewFraction; //0x570C
float unk6[4]; //0x5710
float topArc; //0x5720
float rightArc; //0x5724
float unk7[4]; //0x5728
float bottomArc; //0x5738
float leftArc; //0x573C
char unk8[0x18]; //0x5740
int useButtonDone; //0x5758
int iLastCompassPlayerInfoEnt; //0x575C
int compassPingTime; //0x5760
char unk9[0x84]; //0x5764
int spyplane; //0x57E8
int satellite; //0x57EC
char unk10[0x10]; //0x57F0
int lastStand; //0x5800
char unk11[4]; //0x5804
};