#![allow(non_camel_case_types, non_snake_case)]
use std::ops::{Deref, DerefMut};
use crate::{
bindings::server::{cai_baseactorbase::CAI_BaseActorBase, EHandle},
field_assert,
high::vector::Vector3,
size_assert,
};
#[repr(C)]
#[derive(Debug)]
pub struct CAI_BaseActor {
pub base: CAI_BaseActorBase,
pub m_flAccumYawDelta: f32, pub m_flAccumYawScale: f32, pub m_fLatchedPositions: i32, pub m_latchedEyeOrigin: Vector3, pub m_latchedEyeDirection: Vector3, pub m_latchedHeadDirection: Vector3, pub m_latchedEyeDirMutex: [u8; 40], pub m_goalHeadDirection: Vector3, pub m_goalHeadInfluence: f32, pub m_goalSpineYaw: f32, pub m_goalBodyYaw: f32, pub m_goalHeadCorrection: Vector3, pub m_hLookTarget: EHandle, pub m_lookQueue: [u8; 32], pub m_randomLookQueue: [u8; 32], pub m_flNextRandomLookTime: f32, pub gap_217c: [u8; 4],
pub m_onNewLookTarget: [u8; 40], pub m_hAimTarget: EHandle, pub m_hAimTargetHint: EHandle, pub m_viewTarget: Vector3, pub m_viewTargetActive: bool, pub gap_21bd: [u8; 3],
pub m_attachHeadFocus: i32, pub m_attachChest: i32, pub m_attachForward: i32, pub m_ParameterBodyYaw: i32, pub m_ParameterSpineYaw: i32, pub m_ParameterNeckTrans: i32, pub m_ParameterHeadYaw: i32, pub m_ParameterHeadPitch: i32, pub m_ParameterHeadRoll: i32, pub m_ParameterGestureHeight: i32, pub m_ParameterGestureWidth: i32, }
size_assert!(CAI_BASEACTOR where CAI_BaseActor == 0x21f0);
field_assert!(+ SIZE_FLACCUMYAWDELTA where CAI_BaseActor, m_flAccumYawDelta == 0x20b0);
field_assert!(+ SIZE_FLACCUMYAWSCALE where CAI_BaseActor, m_flAccumYawScale == 0x20b4);
field_assert!(+ SIZE_FLATCHEDPOSITIONS where CAI_BaseActor, m_fLatchedPositions == 0x20b8);
field_assert!(+ SIZE_LATCHEDEYEORIGIN where CAI_BaseActor, m_latchedEyeOrigin == 0x20bc);
field_assert!(+ SIZE_LATCHEDEYEDIRECTION where CAI_BaseActor, m_latchedEyeDirection == 0x20c8);
field_assert!(+ SIZE_LATCHEDHEADDIRECTION where CAI_BaseActor, m_latchedHeadDirection == 0x20d4);
field_assert!(+ SIZE_LATCHEDEYEDIRMUTEX where CAI_BaseActor, m_latchedEyeDirMutex == 0x20e0);
field_assert!(+ SIZE_GOALHEADDIRECTION where CAI_BaseActor, m_goalHeadDirection == 0x2108);
field_assert!(+ SIZE_GOALHEADINFLUENCE where CAI_BaseActor, m_goalHeadInfluence == 0x2114);
field_assert!(+ SIZE_GOALSPINEYAW where CAI_BaseActor, m_goalSpineYaw == 0x2118);
field_assert!(+ SIZE_GOALBODYYAW where CAI_BaseActor, m_goalBodyYaw == 0x211c);
field_assert!(+ SIZE_GOALHEADCORRECTION where CAI_BaseActor, m_goalHeadCorrection == 0x2120);
field_assert!(+ SIZE_HLOOKTARGET where CAI_BaseActor, m_hLookTarget == 0x212c);
field_assert!(+ SIZE_LOOKQUEUE where CAI_BaseActor, m_lookQueue == 0x2130);
field_assert!(+ SIZE_RANDOMLOOKQUEUE where CAI_BaseActor, m_randomLookQueue == 0x2150);
field_assert!(+ SIZE_FLNEXTRANDOMLOOKTIME where CAI_BaseActor, m_flNextRandomLookTime == 0x2170);
field_assert!(+ SIZE_ONNEWLOOKTARGET where CAI_BaseActor, m_onNewLookTarget == 0x2178);
field_assert!(+ SIZE_HAIMTARGET where CAI_BaseActor, m_hAimTarget == 0x21a0);
field_assert!(+ SIZE_HAIMTARGETHINT where CAI_BaseActor, m_hAimTargetHint == 0x21a4);
field_assert!(+ SIZE_VIEWTARGET where CAI_BaseActor, m_viewTarget == 0x21a8);
field_assert!(+ SIZE_VIEWTARGETACTIVE where CAI_BaseActor, m_viewTargetActive == 0x21b4);
field_assert!(+ SIZE_ATTACHHEADFOCUS where CAI_BaseActor, m_attachHeadFocus == 0x21b8);
field_assert!(+ SIZE_ATTACHCHEST where CAI_BaseActor, m_attachChest == 0x21bc);
field_assert!(+ SIZE_ATTACHFORWARD where CAI_BaseActor, m_attachForward == 0x21c0);
field_assert!(+ SIZE_PARAMETERBODYYAW where CAI_BaseActor, m_ParameterBodyYaw == 0x21c4);
field_assert!(+ SIZE_PARAMETERSPINEYAW where CAI_BaseActor, m_ParameterSpineYaw == 0x21c8);
field_assert!(+ SIZE_PARAMETERNECKTRANS where CAI_BaseActor, m_ParameterNeckTrans == 0x21cc);
field_assert!(+ SIZE_PARAMETERHEADYAW where CAI_BaseActor, m_ParameterHeadYaw == 0x21d0);
field_assert!(+ SIZE_PARAMETERHEADPITCH where CAI_BaseActor, m_ParameterHeadPitch == 0x21d4);
field_assert!(+ SIZE_PARAMETERHEADROLL where CAI_BaseActor, m_ParameterHeadRoll == 0x21d8);
field_assert!(+ SIZE_PARAMETERGESTUREHEIGHT where CAI_BaseActor, m_ParameterGestureHeight == 0x21dc);
field_assert!(+ SIZE_PARAMETERGESTUREWIDTH where CAI_BaseActor, m_ParameterGestureWidth == 0x21e0);
impl DerefMut for CAI_BaseActor {
fn deref_mut(&mut self) -> &mut Self::Target {
&mut self.base
}
}
impl Deref for CAI_BaseActor {
type Target = CAI_BaseActorBase;
fn deref(&self) -> &Self::Target {
&self.base
}
}