#![allow(non_camel_case_types, non_snake_case)]
use std::os::raw::c_void;
use crate::{
bindings::cvar::convar::Color32,
high::vector::{Matrix3x4, Quaternion, Vector3},
impl_vmethods,
};
type QAngle = Vector3;
type C_BaseEntity = *mut c_void;
type C_BaseAnimating = *mut c_void;
type C_BaseAnimatingOverlay = *mut c_void;
type CNetworkVarBase_Vector = Vector3;
#[repr(C)]
#[derive(Debug)]
pub struct CUserCmd {
pub command_number: i32,
pub tick_count: i32,
pub command_time: f32,
pub worldViewAngles: Vector3,
pub unkBool0: u32,
pub localViewAngles: Vector3,
pub attackangles: Vector3,
pub forwardmove: f32,
pub sidemove: f32,
pub upmove: f32,
pub buttons: i32,
pub impulse: u8,
pub gap0: u8,
pub weaponselect: i16,
pub meleetarget: i32,
pub weaponIndex: char,
pub gap1: [u8; 3],
pub random_seed: i32,
pub m_bNoAirControl: bool,
pub unkBool2: bool,
pub gap54: [u8; 2],
pub m_stepSmoothingOffset: Vector3,
pub m_iFov: i32,
pub gap68: [u8; 12],
pub headoffset: Vector3,
pub cameraPos: Vector3,
pub cameraAngles: Vector3,
pub gap88: [u8; 4],
pub m_nSimulationTicks: i32,
pub world_angle_tick: i32,
pub predictedServerEventAck: i32,
pub dword98: i32,
pub frameTime: f32,
pub unkPtr: i64,
pub smartAmmoData: [smartAmmoCmdType; 2],
}
#[repr(C)]
#[derive(Debug)]
pub struct smartAmmoCmdType {
pub smartAmmoWeapon: i32,
pub smartAmmoNumVisibleTargets: i32,
pub smartAmmoVisibleTargets: [i32; 8],
pub smartAmmoVisiblePoints: [i32; 8],
}
#[repr(C)]
#[derive(Debug)]
pub struct CCollisionProperty {
pub _vftable: *const c_void,
pub m_pOuter: *mut C_BaseEntity,
pub m_vecMins: CNetworkVarBase_Vector,
pub m_vecMaxs: CNetworkVarBase_Vector,
pub m_usSolidFlags: i32,
pub m_nSolidType: u8,
pub m_triggerBloat: u8,
pub gap46: [u8; 2],
pub gap48: [u8; 8],
pub m_flRadius: f32,
pub m_Partition: u16,
pub m_nSurroundType: char,
pub gap_64: u8,
pub m_iFlags: u8,
pub gap_66: [u8; 3],
pub m_vecSpecifiedSurroundingMins: CNetworkVarBase_Vector,
pub m_vecSpecifiedSurroundingMaxs: CNetworkVarBase_Vector,
pub m_vecSurroundingMins: Vector3,
pub m_vecSurroundingMaxs: Vector3,
pub unk: [u8; 4],
}
#[repr(C)]
#[derive(Debug)]
pub struct ThirdPersonViewData {
vftable: *const c_void,
m_thirdPersonEntViewOffset: Vector3,
m_thirdPersonEntPitchIsFreelook: bool,
m_thirdPersonEntYawIsFreelook: bool,
m_thirdPersonEntUseFixedDist: bool,
m_thirdPersonEntPushedInByGeo: bool,
m_thirdPersonEntDrawViewmodel: bool,
gap_19: [char; 3],
m_thirdPersonEntBlendTotalDuration: f32,
m_thirdPersonEntBlendEaseInDuration: f32,
m_thirdPersonEntBlendEaseOutDuration: f32,
m_thirdPersonEntFixedPitch: f32,
m_thirdPersonEntFixedYaw: f32,
m_thirdPersonEntFixedDist: f32,
m_thirdPersonEntMinYaw: f32,
m_thirdPersonEntMaxYaw: f32,
m_thirdPersonEntMinPitch: f32,
m_thirdPersonEntMaxPitch: f32,
m_thirdPersonEntSpringToCenterRate: f32,
m_thirdPersonEntLookaheadLowerEntSpeed: f32,
m_thirdPersonEntLookaheadUpperEntSpeed: f32,
m_thirdPersonEntLookaheadMaxAngle: f32,
m_thirdPersonEntLookaheadLerpAheadRate: f32,
m_thirdPersonEntLookaheadLerpToCenterRate: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_ParticleProperty {
pub _vftable: *const c_void,
pub m_pOuter: *mut C_BaseEntity,
pub m_ParticleEffects: *mut c_void, pub m_iDormancyChangedAtFrame: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_AnimRelativeData {
pub m_animInitialPos: Vector3,
pub m_animInitialVel: Vector3,
pub m_animInitialRot: Quaternion,
pub m_animInitialCorrectPos: Vector3,
pub m_animInitialCorrectRot: Quaternion,
pub m_animEntityToRefOffset: Vector3,
pub m_animEntityToRefRotation: Quaternion,
pub m_animBeginTime: f32,
pub m_animEndTime: f32,
pub m_animScriptSequence: i32,
pub m_animScriptModel: i32,
pub m_animIgnoreParentRot: u32,
pub m_animMotionMode: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_PredictedAnimEventData {
pub vtable: *const c_void,
pub m_predictedAnimEventTimes: [f32; 8],
pub m_predictedAnimEventIndices: [i32; 8],
pub m_predictedAnimEventCount: i32,
pub m_predictedAnimEventTarget: i32,
pub m_predictedAnimEventSequence: i32,
pub m_predictedAnimEventModel: i32,
pub m_predictedAnimEventsReadyToFireTime: f32,
pub pad: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_SequenceTransitioner {
pub vtable: *const c_void,
pub m_pOwner: *mut C_BaseAnimating,
pub unk: [u8; 8],
pub m_sequenceTransitionerLayers: [DT_SequenceTransitionerLayer; 7],
pub m_sequenceTransitionerLayerCount: i32,
pub animSequenceParity: i32,
pub m_pStudioHdr: *const c_void,
pub unkFloat: f32,
pub unkInt1: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_SequenceTransitionerLayer {
pub hdr: DT_SequenceTransitionerLayerHeader,
pub m_bActive: u32,
pub m_nModelIndex: i32,
pub m_flStartCycle: f32,
pub m_nSequence: i32,
pub m_flWeight: f32,
pub m_flPlaybackRate: f32,
pub m_flStartTime: f32,
pub m_flFadeOutDuration: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_SequenceTransitionerLayerHeader {
vtable: *const c_void,
unk0: i32,
unk1: i32,
m_pOwnerEntity: *mut C_BaseAnimating,
}
#[repr(C)]
#[derive(Debug)]
pub struct CBoneAccessor {
m_pAnimating: *const c_void,
m_ReadableBones: i32,
m_WritableBones: i32,
m_numReadableBones: i32,
m_numWritableBones: i32,
m_pBones: *mut Matrix3x4,
}
#[repr(C)]
#[derive(Debug)]
#[non_exhaustive]
pub enum ModelScaleType_t {
HIERARCHICAL_MODEL_SCALE = 0x0,
NONHIERARCHICAL_MODEL_SCALE = 0x1,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_BaseAnimatingOverlay {
pub m_overlayVars: DT_OverlayVars,
pub unk: [u8; 40],
pub m_animOverlayIsActive: [bool; 8],
pub m_animOverlayStartTime: [f32; 8],
pub m_animOverlayStartCycle: [f32; 8],
pub m_animOverlayPlaybackRate: [f32; 8],
pub m_animOverlayModelIndex: [i32; 8],
pub m_animOverlaySequence: [i32; 8],
pub m_animOverlayWeight: [f32; 8],
pub m_animOverlayOrder: [i32; 8],
pub m_animOverlayAnimTime: [f32; 8],
pub m_animOverlayFadeInDuration: [f32; 8],
pub m_animOverlayFadeOutDuration: [f32; 8],
pub m_animOverlayCycle: [f32; 8],
pub unk2: [i64; 4],
pub m_localAnimOverlayIsActive: [bool; 4],
pub m_localAnimOverlayModelIndex: [i32; 4],
pub m_localAnimOverlaySequence: [i32; 4],
pub m_localAnimOverlayStartTime: [f32; 4],
pub m_localAnimOverlayWeight: [f32; 4],
pub m_localAnimOverlayFadeInDuration: [f32; 4],
pub m_localAnimOverlayFadeOutDuration: [f32; 4],
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_OverlayVars {
pub m_AnimOverlay: [C_AnimationLayer; 8],
pub m_AnimOverlayCount: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct C_AnimationLayer {
pub vftable: *const c_void,
pub m_pOwner: *mut C_BaseAnimatingOverlay,
pub m_nLayerIdx: i32,
pub unk: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_WeaponInventory {
pub vftable: *const c_void,
pub weapons: [u32; 4],
pub activeWeapon: u32,
pub offhandWeapons: [u32; 6],
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_Local {
pub vftable: *const c_void,
pub m_nStepside: i32,
pub m_nOldButtons: i32,
pub m_iHideHUD: i32,
pub m_nDuckTransitionTimeMsecs: i32,
pub m_superJumpsUsed: i32,
pub m_jumpedOffRodeo: bool,
pub gap_1d: [u8; 3],
pub m_flSuitPower: f32,
pub m_flSuitJumpPower: f32,
pub m_flSuitGrapplePower: f32,
pub m_flFallVelocity: f32,
pub m_flStepSize: f32,
pub m_airSlowMoFrac: f32,
pub predictableFlags: i32,
pub m_bitsActiveDevices: i32,
pub m_forceStance: i32,
pub m_duckToggleOn: bool,
pub m_bDrawViewmodel: bool,
pub m_bAllowAutoMovement: bool,
pub pad0: char,
pub m_accelScale: f32,
pub m_powerRegenRateScale: f32,
pub m_dodgePowerDelayScale: f32,
pub pad01: [u8; 20],
pub m_hSkyCamera: u32,
pub m_skybox3d: DT_Skybox3D,
pub m_audio: audioparams_t,
pub m_cameraPosition: Vector3,
pub m_cameraAngle: Vector3,
pub m_animNearZ: f32,
pub lastAttacker: i32,
pub attackedCount: i32,
pub unk2: [u8; 40],
pub m_airMoveBlockPlanes: [Vector3; 2],
pub m_airMoveBlockPlaneTime: f32,
pub m_airMoveBlockPlaneCount: i32,
pub m_queuedMeleePressTime: f32,
pub m_queuedGrappleMeleeTime: f32,
pub m_disableMeleeUntilRelease: bool,
pub gap_346: [u8; 3],
pub m_meleePressTime: f32,
pub m_meleeDisabledCounter: i32,
pub m_trackedChildProjectileCount: i32,
pub m_oneHandedWeaponUsage: bool,
pub m_prevOneHandedWeaponUsage: bool,
pub gap_35e: [u8; 2],
pub m_flCockpitEntryTime: f32,
pub m_ejectStartTime: f32,
pub m_disembarkStartTime: f32,
pub m_hotDropImpactTime: f32,
pub m_outOfBoundsDeadTime: f32,
pub m_objectiveIndex: i32,
pub m_objectiveEntity: u32,
pub m_objectiveEndTime: f32,
pub m_cinematicEventFlags: i32,
pub m_forcedDialogueOnly: bool,
pub pad1: [u8; 3],
pub m_titanBuildTime: f32,
pub m_titanBubbleShieldTime: f32,
pub m_titanEmbarkEnabled: bool,
pub m_titanDisembarkEnabled: bool,
pub pad2: [u8; 2],
pub m_voicePackIndex: i32,
pub m_playerAnimUpdateTime: f32,
pub m_playerAnimLastAimTurnTime: f32,
pub m_playerAnimCurrentFeetYaw: f32,
pub m_playerAnimEstimateYaw: f32,
pub m_playerAnimGoalFeetYaw: f32,
pub m_playerAnimJumping: bool,
pub pad3: [u8; 3],
pub m_playerAnimJumpStartTime: f32,
pub m_playerAnimFirstJumpFrame: bool,
pub m_playerAnimDodging: bool,
pub pad4: [u8; 2],
pub m_playerLandStartTime: f32,
pub m_playerAnimJumpActivity: i32,
pub m_playerAnimLastWallRunNormal: Vector3,
pub m_playerAnimLanding: bool,
pub m_playerAnimShouldLand: bool,
pub pad5: [u8; 2],
pub m_playerAnimLandStartTime: f32,
pub m_playerAnimInAirWalk: bool,
pub pad6: [u8; 3],
pub m_playerAnimPrevFrameSequenceMotionYaw: f32,
pub m_playerAnimMovementPlaybackRate: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_Skybox3D {
pub scale: f32,
pub cellNum: i32,
pub useWorldFog: bool,
pub u8: [char; 3],
pub fog: DT_FogController,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_FogController {
botAlt: f32,
topAlt: f32,
halfDistBot: f32,
halfDistTop: f32,
distOffset: f32,
densityScale: f32,
halfAngleDeg: f32,
distColorStr: f32,
dirColorStr: f32,
HDRColorScale: f32,
distColor: Color32,
dirColor: Color32,
direction: Vector3,
gap_4a: [u8; 5],
enable: bool,
gap_4b: [u8; 6],
}
#[repr(C)]
#[derive(Debug)]
pub struct audioparams_t {
pub localSound: [Vector3; 8],
pub soundscapeIndex: i32,
pub localBits: i32,
pub entIndex: i32,
}
#[repr(C)]
#[derive(Debug)]
pub struct StatusEffectTimedData {
pub vftable: *const c_void,
pub seComboVars: i32,
pub seTimeEnd: f32,
pub seEaseOut: f32,
pub sePausedTimeRemaining: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct StatusEffectEndlessData {
pub vftable: *const c_void,
pub seComboVars: i32,
pub gap_c: [u8; 4],
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_PlayerState {
pub vftable: *const c_void,
pub currentClass: i32,
pub requestedClass: i32,
pub onDeathClass: i32,
pub oldClass: i32,
pub a_angle: Vector3,
pub gap_24: [u8; 4],
pub lastPlayerView_origin: Vector3,
pub lastPlayerView_angle: Vector3,
pub deadflag: bool,
pub gap_45: [u8; 3],
pub anglechange: Vector3,
pub localViewAngles: Vector3,
pub gap_65: [u8; 4],
}
#[repr(C)]
#[derive(Debug)]
pub struct Rodeo_PlayerData {
pub vftable: *const c_void,
pub stage: i32,
pub canRodeo: bool,
pub gap_d: [u8; 3],
pub rodeoCountParity: i32,
pub startTime: f32,
pub endTime: f32,
pub targetEnt: i32,
pub prevEnt: i32,
pub prevEntCooldown: f32,
pub pilot1pSequenceIndex: i32,
pub pilot3pSequenceIndex: i32,
pub targetAttachmentIndex: i32,
pub rodeoStabilizeStrength: f32,
pub rodeoStabilizeViewFirstFrame: bool,
pub gap_39: [u8; 3],
pub lastPlayerToWorld: Matrix3x4,
pub initialCameraCorrection: Quaternion,
}
#[repr(C)]
#[derive(Debug)]
pub struct ClassModValues {
pub health: f32,
pub healthShield: f32,
pub healthDoomed: f32,
pub healthPerSegment: f32,
pub powerRegenRate: f32,
pub dodgeDuration: f32,
pub dodgeSpeed: f32,
pub m_flDodgePowerDrain: f32,
pub smartAmmoLockTimeModifier: f32,
pub wallrunAccelerateVertical: f32,
pub wallrunAccelerateHorizontal: f32,
pub wallrunMaxSpeedHorizontal: f32,
pub wallrun_timeLimit: f32,
pub wallrun_hangTimeLimit: f32,
pub m_bWallrun: bool,
pub pad2: [u8; 3],
pub wallrunAdsType: i32,
pub m_bDoubleJump: bool,
pub pad02: [u8; 3],
pub pitchMaxUp: f32,
pub pitchMaxDown: f32,
pub mantlePitchLeveling: bool,
pub m_bDodge: bool,
pub m_bSpri32: bool,
pub stealthSounds: bool,
pub hoverEnabled: u32,
pub grapple_power_regen_delay: f32,
pub grapple_power_regen_rate: f32,
pub slideFOVScale: f32,
pub slideFOVLerpi32ime: f32,
pub slideFOVLerpOutTime: f32,
pub airSlowMoSpeed: f32,
pub sharedEnergyTotal: i32,
pub sharedEnergyRegenRate: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct PerPosClassModValues {
pub speed: f32,
pub spri32Speed: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_GrappleData {
pub vftable: *const c_void,
pub m_grappleVel: Vector3,
pub m_grapplePoi32s: [Vector3; 4],
pub m_grapplePoi32Count: i32,
pub m_grappleAttached: bool,
pub m_grapplePulling: bool,
pub m_grappleRetracting: bool,
pub m_grappleForcedRetracting: bool,
pub m_grappleUsedPower: f32,
pub m_grapplePullTime: f32,
pub m_grappleAttachTime: f32,
pub m_grappleDetachTime: f32,
pub m_grappleMeleeTarget: u32,
pub m_grappleHasGoodVelocity: bool,
pub gap_6d: [u8; 3],
pub m_grappleLastGoodVelocityTime: f32,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_Player_ViewOffsetEntityData {
pub vftable: *const c_void,
pub viewOffsetEntityHandle: u32,
pub lerpInDuration: f32,
pub lerpOutDuration: f32,
pub stabilizePlayerEyeAngles: bool,
pub gap_6d: [u8; 3],
pub unki32: i32,
pub unkVec0: Vector3,
pub unkVec1: Vector3,
pub unkVec2: Vector3,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_Player_AnimViewEntityData {
pub vftable: *const c_void,
pub animViewEntityHandle: i32,
pub animViewEntityAngleLerpInDuration: f32,
pub animViewEntityOriginLerpInDuration: f32,
pub animViewEntityLerpOutDuration: f32,
pub animViewEntityStabilizePlayerEyeAngles: bool,
pub gap0: [u8; 3],
pub animViewEntityThirdPersonCameraParity: i32,
pub animViewEntityThirdPersonCameraAttachment: [i32; 6],
pub animViewEntityNumThirdPersonCameraAttachments: i32,
pub animViewEntityThirdPersonCameraVisibilityChecks: bool,
pub gap1: [u8; 3],
pub animViewEntityParity: i32,
pub lastAnimViewEntityParity: i32,
pub animViewEntityCameraPosition: Vector3,
pub animViewEntityCameraAngles: Vector3,
pub animViewEntityBlendStartTime: f32,
pub animViewEntityBlendStartEyePosition: Vector3,
pub animViewEntityBlendStartEyeAngles: Vector3,
pub unkVec: Vector3,
pub unkEHandles: [i32; 6],
pub unk: [u8; 68],
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_PlayerZipline {
pub _vftable: *const c_void,
pub m_ziplineReenableWeapons: bool,
pub gap_9: [u8; 3],
pub m_mountingZiplineDuration: f32,
pub m_mountingZiplineAlpha: f32,
pub m_ziplineStartTime: f32,
pub m_ziplineEndTime: f32,
pub m_mountingZiplineSourcePosition: Vector3,
pub m_mountingZiplineSourceVelocity: Vector3,
pub m_mountingZiplineTargetPosition: Vector3,
pub m_ziplineUsePosition: Vector3,
}
#[repr(C)]
#[derive(Debug)]
pub struct DT_PlayerMelee_PlayerData {
pub vftable: *const c_void,
pub attackActive: bool,
pub attackRecoveryShouldBeQuick: bool,
pub gap_f: [u8; 2],
pub attackStartTime: f32,
pub attackHitEntity: u32,
pub attackHitEntityTime: f32,
pub attackLastHitNonWorldEntity: u32,
pub scriptedState: i32,
pub pendingMeleePress: bool,
pub gap_25: [u8; 3],
}
#[repr(C)]
#[derive(Debug)]
pub struct C_Player {
pub vftable: *const c_void,
pub m_hEntHandle: u32,
pub unkData0: [u8; 4],
pub _vftable0: *const c_void,
pub _vftable1: *const c_void,
pub _vftable2: *const c_void,
pub _vftable3: *const c_void,
pub unkBool03: bool,
pub padding0: [u8; 3],
pub m_cellX: f32,
pub m_cellY: f32,
pub m_cellZ: f32,
pub m_modelName: i64,
pub m_entIndex: u32,
pub unkInt_0: i32,
pub m_iEFlags: i32,
pub unkInt_2: i32,
pub unkPtr0: i64,
pub unkData_0: [u8; 24],
pub m_hScriptInstance: i64,
pub m_iszScriptId: i64,
pub hasScriptHandle: u32,
pub m_fFlags: i32,
pub m_vecOrigin: Vector3,
pub m_currentFrame_modelIndex: i16,
pub unkData22: [u8; 2],
pub m_angRotation: QAngle,
pub m_currentFrame_viewOffset: Vector3,
pub m_currentFrame_animCycle: f32,
pub unkData23: [u8; 60],
pub m_pMoveParent: u32,
pub unkData24: [u8; 12],
pub m_vecAngVelocity: Vector3,
pub m_angAbsRotation: Vector3,
pub m_vecAbsVelocity: Vector3,
pub m_vecAbsOrigin: Vector3,
pub m_localOrigin: Vector3,
pub m_localAngles: QAngle,
pub unkData2: [u8; 552],
pub m_flGravity: f32,
pub m_flProxyRandomValue: f32,
pub m_vecBaseVelocity: Vector3,
pub m_groundEntity: u32,
pub m_iHealth: i32,
pub m_flMaxspeed: f32,
pub m_visibilityFlags: i32,
pub m_scriptVisible: u32,
pub m_fEffects: i32,
pub m_iTeamNum: i32,
pub m_passThroughFlags: i32,
pub m_passThroughThickness: i32,
pub m_passThroughDirection: f32,
pub m_deathVelocity: Vector3,
pub m_vecVelocity: Vector3,
pub m_angNetworkAngles: Vector3,
pub m_flFriction: f32,
pub gap_438: [char; 4],
pub m_hOwnerEntity: u32,
pub m_bRenderWithViewModels: bool,
pub m_nRenderFX: u8,
pub gap_442: [char; 11],
pub m_nRenderMode: u8,
pub m_MoveType: u8,
pub m_MoveCollide: u8,
pub m_prevClientAnimTime: f32,
pub m_collision: CCollisionProperty,
pub gap_1919: [char; 628],
pub m_lifeState: i32,
pub gap_1920: [char; 152],
pub m_attachmentLerpStartTime: f32,
pub m_attachmentLerpEndTime: f32,
pub m_attachmentLerpStartOrigin: Vector3,
pub m_attachmentLerpStartAngles: QAngle,
pub m_parentAttachmentType: i32,
pub m_parentAttachmentIndex: i32,
pub m_parentAttachmentHitbox: i32,
pub m_parentAttachmentModel: i32,
pub gap_1921: [char; 36],
pub m_ModelName: i64,
pub m_Particles: DT_ParticleProperty,
pub gap_1922: [char; 4],
pub m_oldAngRotation: Vector3,
pub m_rgflCoordinateFrame: Matrix3x4,
pub m_CollisionGroup: i32,
pub m_contents: i32,
pub unku8s: [u8; 800],
pub m_animNetworkFlags: i32,
pub m_animActive: bool,
pub gap_a2d: [char; 1],
pub m_networkAnimActive: bool,
pub m_animCollisionEnabled: bool,
pub m_animPlantingEnabled: u32,
pub m_animRelativeData: [DT_AnimRelativeData; 2],
pub m_syncingWithEntity: u32,
pub m_predictedAnimEventData: DT_PredictedAnimEventData,
pub m_pRagdoll: i64,
pub m_hRagdollHandle: i32,
pub m_nRagdollImpactFXTableId: i32,
pub m_flSkyScaleStartValue: f32,
pub m_flSkyScaleEndValue: f32,
pub m_flSkyScaleStartTime: f32,
pub m_flSkyScaleEndTime: f32,
pub unku8s03: [i32; 6],
pub m_SequenceTransitioner: DT_SequenceTransitioner,
pub unku8s02: [u8; 320],
pub m_BoneAccessor: CBoneAccessor,
pub unku8s04: [u8; 16],
pub m_bSequenceFinished: bool,
pub m_useLockedAnimDeltaYaw: bool,
pub pad: [u8; 2],
pub m_lockedAnimDeltaYaw: f32,
pub m_bSequenceLoops: u32,
pub m_flModelScale: f32,
pub m_ScaleType: ModelScaleType_t,
pub unk02: i32,
pub m_currentFrameBaseAnimating_animStartTime: f32,
pub m_currentFrameBaseAnimating_animStartCycle: f32,
pub m_currentFrameBaseAnimating_animPlaybackRate: f32,
pub unk03: i32,
pub m_currentFrameBaseAnimating_animModelIndex: i32,
pub m_currentFrameBaseAnimating_animSequence: i32,
pub m_currentFrameBaseAnimating_animSequenceParity: i32,
pub m_currentFrameBaseAnimating_m_flPoseParameters: [f32; 24],
pub unku8s05: [u8; 192],
pub m_flOldModelScale: f32,
pub m_nOldSequence: i32,
pub unk04: i32,
pub m_pBoneMergeCache: i64,
pub m_CachedBoneData: i64,
pub m_fBoneCacheFlags: i16,
pub unku8s06: [u8; 22],
pub m_flLastBoneSetupTime: f32,
pub unk05: i32,
pub m_pJiggleBones: i64,
pub m_isJiggleBonesEnabled: u32,
pub unk06: i32,
pub m_Attachments: i64,
pub unku8s07: [u8; 104],
pub m_maxOverlays: i32,
pub gap_ebc: [char; 4],
pub m_AnimOverlay: DT_BaseAnimatingOverlay,
pub m_flNextAttack: f32,
pub m_lastFiredTime: f32,
pub m_raiseFromMeleeEndTime: f32,
pub m_sharedEnergyCount: i32,
pub m_sharedEnergyTotal: i32,
pub m_lastSharedEnergyRegenTime: f32,
pub m_sharedEnergyRegenRate: f32,
pub m_sharedEnergyRegenDelay: f32,
pub m_lastSharedEnergyTakeTime: f32,
pub gap_16ac: [char; 4],
pub m_inventory: DT_WeaponInventory,
pub unkInt_CBCC1: i32,
pub m_selectedWeapon: i32,
pub m_latestPrimaryWeapon: i32,
pub m_latestNonOffhandWeapon: i32,
pub m_lastCycleSlot: i32,
pub m_weaponPermission: i32,
pub unkCBCCEntHandle0: i32,
pub unkCBCCEntHandle1: i32,
pub unkCBCCInt0: i32,
pub unkCBCCInt1: i32,
pub unkCBCCInt2: i32,
pub unkCBCCInt3: i32,
pub m_selectedOffhand: i32,
pub m_selectedOffhandPendingHybridAction: i32,
pub unk_CBCC_Bool0: bool,
pub m_weaponDisabled: bool,
pub m_hudInfo_visibilityTestAlwaysPasses: bool,
pub gap_1923: [u8; 1],
pub unkCBCCFloat0: f32,
pub m_meleeEndTime: f32,
pub unkCBCCInt4: i32,
pub m_contextAction: i32,
pub unkCBCCEntHandle2: i32,
pub unkCBCCEntHandle3: i32,
pub unkCBCCEntHandle4: i32,
pub unkDodgeTime: f32,
pub unkCBCCEntHandle5: i32,
pub unkCBCCEntHandle6: i32,
pub unkCBCCEntHandle7: i32,
pub m_meleeExecutionUnstuckPosition: Vector3,
pub m_inPhaseShift: i32,
pub m_phaseShiftTimeStart: f32,
pub m_phaseShiftTimeEnd: f32,
pub gap_1925: [u8; 72],
pub m_targetInfoIconName: [char; 64],
pub gap_1926: [u8; 36],
pub m_bZooming: bool,
pub m_zoomToggleOn: bool,
pub gap_1882: [char; 2],
pub m_zoomBaseFrac: f32,
pub m_zoomBaseTime: f32,
pub m_zoomFullStartTime: f32,
pub m_zoomToggleOnStartTime: f32,
pub gap_1894: [char; 44],
pub m_physicsSolidMask: i32,
pub unkFlag0: i32,
pub unkFlag1: i32,
pub m_lastUCmdSimulationTicks: i32,
pub m_lastUCmdSimulationRemainderTime: f32,
pub gap_1895: [char; 4],
pub slideTrailParticle: i64,
pub gap_1896: [char; 16],
pub unkSlideTime0: i32,
pub unkSlideFlag: i32,
pub unkSlideVec0: Vector3,
pub m_slideGroundNormal: Vector3,
pub m_slideSoundName: [char; 32],
pub gap_1918: [char; 304],
pub m_DLocal: DT_Local,
pub unku8s1: [u8; 4],
pub m_currentFramePlayer_timeBase: f32,
pub unku8s2: [u8; 4],
pub m_currentFramePlayer__statusEffectsTimedPlayerCUR: [StatusEffectTimedData; 10],
pub m_currentFramePlayer__statusEffectsEndlessPlayerCUR: [StatusEffectEndlessData; 10],
pub m_flHullHeight: f32,
pub m_traversalAnimProgress: f32,
pub m_sprintTiltFrac: f32,
pub m_angEyeAnglesX: f32,
pub m_angEyeAnglesY: f32,
pub m_angEyeAnglesZ: f32,
pub unku8s3: [u8; 8],
pub m_statusEffectsTimedPlayerOLD: [StatusEffectTimedData; 10],
pub m_statusEffectsEndlessPlayerOLD: [StatusEffectEndlessData; 10],
pub unku8s4: [u8; 24],
pub m_currentFrameLocalPlayer__m_stepSmoothingOffset: Vector3,
pub m_currentFrameLocalPlayer__m_vecPunchBase_Angle: Vector3,
pub m_currentFrameLocalPlayer__m_vecPunchBase_AngleVel: Vector3,
pub m_currentFrameLocalPlayer__m_vecPunchWeapon_Angle: Vector3,
pub m_currentFrameLocalPlayer__m_vecPunchWeapon_AngleVel: Vector3,
pub unku8s334: [u8; 12],
pub pl: DT_PlayerState,
pub m_rodeo: Rodeo_PlayerData,
pub unku8s8: [u8; 260],
pub m_classModValues: ClassModValues,
pub m_posClassModsActive: [i32; 4],
pub m_posClassModsActiveOld: [i32; 4],
pub m_perPosValues: [PerPosClassModValues; 4],
pub m_passives: [bool; 128],
pub unku8s9: [u8; 132],
pub m_statusEffectsTimedPlayerNV: [StatusEffectTimedData; 10],
pub m_statusEffectsEndlessPlayerNV: [StatusEffectEndlessData; 10],
pub unku8s80: [u8; 12],
pub m_gestureSequences: [i32; 4],
pub m_gestureStartTimes: [f32; 4],
pub m_gestureBlendInDuration: [f32; 4],
pub m_gestureBlendOutDuration: [f32; 4],
pub m_gestureFadeOutStartTime: [f32; 4],
pub m_gestureFadeOutDuration: [f32; 4],
pub m_gestureAutoKillBitfield: i32,
pub gap_1efa: [char; 20],
pub m_nButtons: i32,
pub m_nImpulse: i32,
pub m_afButtonLast: i32,
pub m_afButtonPressed: i32,
pub m_afButtonReleased: i32,
pub m_flPhysics: i32,
pub m_flStepSoundTime: i32,
pub m_flStepSoundReduceTime: f32,
pub m_flTimeAllSuitDevicesOff: f32,
pub m_fStickySprintMinTime: f32,
pub m_bPlayedSprintStartEffects: bool,
pub gap_25fd: [char; 3],
pub m_autoSprintForced: i32,
pub m_fIsSprinting: bool,
pub m_fIsWalking: bool,
pub gap_26d: [char; 2],
pub m_useHeldTime: f32,
pub m_sprintStartedTime: f32,
pub m_sprintStartedFrac: f32,
pub m_sprintEndedTime: f32,
pub m_sprintEndedFrac: f32,
pub m_stickySprintStartTime: f32,
pub m_damageImpulseNoDecelEndTime: f32,
pub m_titanSoulBeingRodeoed: i32,
pub unku8s12: [u8; 4],
pub m_duckState: i32,
pub m_StandHullMin: Vector3,
pub m_StandHullMax: Vector3,
pub m_DuckHullMin: Vector3,
pub m_DuckHullMax: Vector3,
pub gap_2668: [char; 4],
pub m_upDir: Vector3,
pub m_upDirPredicted: Vector3,
pub m_lastWallRunStartPos: Vector3,
pub m_wallRunCount: i32,
pub m_wallRunWeak: bool,
pub pad3: [char; 3],
pub m_wallRunPushAwayTime: f32,
pub m_wallrunFrictionScale: f32,
pub m_groundFrictionScale: f32,
pub m_wallrunRetryTime: f32,
pub m_wallrunRetryPos: Vector3,
pub m_wallrunRetryNormal: Vector3,
pub gap_26cc: [char; 20],
pub m_wallhangStartTime: f32,
pub m_wallHangTime: f32,
pub m_traversalState: i32,
pub m_traversalType: i32,
pub m_traversalBegin: Vector3,
pub m_traversalMid: Vector3,
pub m_traversalEnd: Vector3,
pub m_traversalMidFrac: f32,
pub m_traversalForwardDir: Vector3,
pub m_traversalRefPos: Vector3,
pub m_traversalProgress: f32,
pub m_traversalStartTime: f32,
pub m_traversalHandAppearTime: f32,
pub m_traversalReleaseTime: f32,
pub m_traversalBlendOutStartTime: f32,
pub m_traversalBlendOutStartOffset: Vector3,
pub m_traversalYawDelta: f32,
pub unkState0: i32,
pub gap_2754: [char; 4],
pub m_wallDangleJumpOffTime: f32,
pub m_wallDangleMayHangHere: bool,
pub m_wallDangleForceFallOff: bool,
pub m_wallDangleLastPushedForward: bool,
pub gap_2763: [char; 1],
pub m_wallDangleDisableWeapon: i32,
pub m_wallDangleClimbProgressFloor: f32,
pub m_wallHanging: bool,
pub gap_9608: [char; 3],
pub gap_9612: [char; 4],
pub m_grapple: DT_GrappleData,
pub m_grappleActive: bool,
pub m_grappleNeedWindowCheck: bool,
pub gap_2802: [char; 2],
pub m_grappleNextWindowHint: u32,
pub m_sliding: bool,
pub m_slideLongJumpAllowed: bool,
pub gap_9730: [char; 2],
pub m_lastSlideTime: f32,
pub m_lastSlideBoost: f32,
pub m_gravityGrenadeStatusEffect: i32,
pub m_bIsStickySprinting: bool,
pub gap_2825: [char; 3],
pub m_prevMoveYaw: f32,
pub m_sprintTiltVel: f32,
pub m_sprintTiltPoseParameter: i32,
pub m_sprintFracPoseParameter: i32,
pub gap_2830: [char; 16],
pub m_remoteTurret: i32,
pub m_hViewModel: i32,
pub gap_2831: [char; 4],
pub m_viewOffsetEntity: DT_Player_ViewOffsetEntityData,
pub m_animViewEntity: DT_Player_AnimViewEntityData,
pub gap_2858: [char; 4],
pub m_activeZipline: i32,
pub m_lastZipline: i32,
pub m_lastZiplineDetachTime: f32,
pub m_ziplineReverse: bool,
pub m_ziplineValid3pWeaponLayerAnim: bool,
pub gap_29a5: [char; 2],
pub m_ziplineState: i32,
pub m_zipline: DT_PlayerZipline,
pub gap_2a5c: [char; 104],
pub m_slipAirRestrictDirection: Vector3,
pub m_slipAirRestrictTime: f32,
pub gap_2ae0: [char; 21],
pub m_boosting: bool,
pub m_repeatedBoost: bool,
pub gap_2a6b: [char; 1],
pub m_boostMeter: f32,
pub m_jetpack: bool,
pub m_gliding: bool,
pub gap_2a7: [char; 2],
pub m_glideMeter: f32,
pub m_glideRechargeDelayAccumulator: f32,
pub m_hovering: bool,
pub m_climbing: bool,
pub m_isPerformingBoostAction: bool,
pub gap_2a7e: [char; 1],
pub m_lastJumpHeight: f32,
pub m_numPingsUsed: i32,
pub m_numPingsAvailable: i32,
pub m_lastPingTime: f32,
pub m_pingGroupStartTime: f32,
pub m_pingGroupAccumulator: f32,
pub m_lastBodySound1p: i64,
pub m_lastBodySound3p: i64,
pub m_lastFinishSound1p: i64,
pub m_lastFinishSound3p: i64,
pub m_primedSound1p: i64,
pub m_primedSound3p: i64,
pub gap_2a84: [char; 13],
pub m_viewConeActive: bool,
pub m_viewConeParented: bool,
pub gap_27ea: [char; 1],
pub m_viewConeParity: i32,
pub m_lastViewConeParityTick: i32,
pub m_melee: DT_PlayerMelee_PlayerData,
pub gap_pad: [char; 4],
pub m_useCredit: bool,
pub gap_2965: [char; 3],
pub m_playerFlags: i32,
pub m_hasMic: bool,
pub m_inPartyChat: bool,
pub gap_2ca9: [char; 2],
pub m_playerMoveSpeedScale: f32,
pub m_LastCmd: CUserCmd,
pub gap_2ca10: [char; 156],
pub m_hUseEntity: i32,
pub gap_2ca12: [char; 8],
pub m_pCurrentCommand: i64,
pub m_bShouldDrawPlayerWhileUsingViewEntity: u32,
pub m_hConstraintEntity: i32,
pub m_vecConstraintCenter: Vector3,
pub m_flConstraintRadius: f32,
pub m_flConstraintWidth: f32,
pub m_flConstraintSpeedFactor: f32,
pub m_bConstraintPastRadius: u32,
pub unkMatrix0: Matrix3x4,
pub gap_2ca11: [char; 176],
pub m_wallRunStartTime: f32,
pub m_wallRunClearTime: f32,
pub m_onSlopeTime: f32,
pub m_lastWallNormal: Vector3,
pub m_dodging: bool,
pub pad4: [char; 3],
pub m_lastDodgeTime: f32,
pub m_vecPreviouslyPredictedOrigin: Vector3,
pub m_flTimeLastTouchedGround: f32,
pub m_flTimeLastJumped: f32,
pub m_flTimeLastLanded: f32,
pub m_holdToUseTimeLeft: f32,
pub m_upDirWhenLastTouchedGround: Vector3,
pub m_bHasJumpedSinceTouchedGround: bool,
pub m_dodgingInAir: bool,
pub pad5: [char; 2],
pub unku8s11: [char; 24],
pub m_airSpeed: f32,
pub m_airAcceleration: f32,
pub unkTime0: f32,
pub unkAngles0: QAngle,
pub unkAngles1: QAngle,
pub m_firstPersonProxy: u32,
pub m_predictedFirstPersonProxy: u32,
pub m_grappleHook: u32,
pub m_petTitan: u32,
pub m_petTitanNew: u32,
pub m_hardpointEntity: u32,
pub m_unkEHandle0: u32,
pub gapUnk0: [char; 24],
pub m_xp: i32,
pub m_unkInt0: i32,
pub m_generation: i32,
pub m_rank: i32,
pub m_serverForceIncreasePlayerListGenerationParity: i32,
pub m_isPlayingRanked: u32,
pub m_skill_mu: i32,
pub m_nextTitanRespawnAvailable: f32,
pub gapUnk1: [char; 16],
pub m_petTitanMode: i32,
pub m_unkInt1: i32,
pub m_hThirdPersonEnt: i32,
pub m_unkInt2: i32,
pub m_unkInt3: i32,
pub m_thirdPerson: ThirdPersonViewData,
pub unku8s13: [char; 92],
pub m_curUCmdSimulationTicks: i32,
pub m_curUCmdSimulationRemainderTime: f32,
pub unku8s13b: [char; 36],
pub m_currentCommand: CUserCmd,
pub unku8s14: [char; 164],
pub m_flLaggedMovementValue: f32,
pub m_lastMoveInputTime: f32,
pub unku8s15: [char; 164],
pub m_pSurfaceData: i64,
pub m_gameMovementUtil_m_surfaceFriction: f32,
pub m_chMaterialType: u32,
pub m_UnkType: u32,
pub unkEHandle: u32,
pub unku8s16: [char; 420],
pub m_lungeTargetEntity: u32,
pub m_isLungingToPosition: u32,
pub m_lungeTargetPosition: Vector3,
pub m_lungeStartPositionOffset: Vector3,
pub m_lungeEndPositionOffset: Vector3,
pub m_lungeStartTime: f32,
pub m_lungeEndTime: f32,
pub m_lungeCanFly: bool,
pub m_lungeLockPitch: bool,
pub pad6: [char; 2],
pub m_lungeStartPitch: f32,
pub m_lungeSmoothTime: f32,
pub m_lungeMaxTime: f32,
pub m_lungeMaxEndSpeed: f32,
pub unku8s17: [char; 2576],
pub m_groundNormal: Vector3,
pub unku8s18: [char; 20],
pub m_vPrevGroundNormal: Vector3,
pub unku8s19: [char; 444],
pub m_pushAwayFromTopAcceleration: Vector3,
}
impl_vmethods! {
impl C_Player {
pub fn get_origin() -> *const Vector3 where offset(8);
}
}