// *************************************************************************************
// ! HumanItemBehaviorCfg - per item config of stances / movements
// *************************************************************************************
class HumanItemBehaviorCfg
{
// static int DEFMOVEMENT = MOVEMENT_IDLE | MOVEMENT_WALK | MOVEMENT_RUN | SPRINT;
//! bit mask of ik settings
static int IKSETTING_AIMING = 0x1;
static int IKSETTING_RHAND = 0x2;
static int IKSETTING_LHAND = 0x4;
int m_iType;
int m_iStanceMask; //!< combinations of STANCEMASK_
int m_StanceMovements[6]; //! 6 stances -> all has movement mask, STANCEIDX_ ... is index
int m_StanceRotation[6]; //!
int m_IKSettings[24]; //! [stance][movement] mask for ik
int m_IKSettingsMelee[2]; //! [inpact type] mask for ik (0 - light/1 - heavy)
int m_iPerItemCameraUserData; //! per item camera user data - can be obtained in runtime by DayZPlayer.GetPerItemCameraUD()
//! movement caps
float m_fMoveHeadingFilterSpan; //! default delay of alignment when moving
float m_fMoveHeadingSprintFilterSpan; //! delay of alignment when sprintinh
float m_fMoveHeadingProneFilterSpan; //! delay of alignment when moving in prone stance
float m_fMoveHeadingFilterSpeed; //! max speed of alignment when moving
//! evade caps
float m_fMeleeEvadeHeadingFilterSpan; //! delay of alignment when evading
float m_fMeleeEvadeHeadingFilterSpeed; //! max speed of alignment when evading
//! per weapon lean forward
bool m_bAttackLean; //! default false
//! per weapon lean forward
bool m_bJumpAllowed; //! default true
private bool m_bPlaceholder;
void SetIK(int pStance, int pMovement, bool pAim, bool pRArm, bool pLArm)
{
int val = 0;
if (pAim) val |= IKSETTING_AIMING;
if (pRArm) val |= IKSETTING_RHAND;
if (pLArm) val |= IKSETTING_LHAND;
// Print("Setting ik " + pStance.ToString() + "," + pMovement.ToString() );
pStance = pStance * 4;
pStance = pStance + pMovement;
// Print("Setting ik " + pStance.ToString() + " to value " + val.ToString() );
m_IKSettings[pStance] = val;
}
void SetIKStance(int pStance, bool pAim, bool pRArm, bool pLArm)
{
int val = 0;
if (pAim) val |= IKSETTING_AIMING;
if (pRArm) val |= IKSETTING_RHAND;
if (pLArm) val |= IKSETTING_LHAND;
int bo = pStance * 4;
for (int i = 0; i < 4; i++)
{
m_IKSettings[bo+i] = val;
}
}
void SetIKMelee(int pHitType, bool pAim, bool pRArm, bool pLArm)
{
int val = 0;
if (pAim) val |= IKSETTING_AIMING;
if (pRArm) val |= IKSETTING_RHAND;
if (pLArm) val |= IKSETTING_LHAND;
m_IKSettingsMelee[pHitType] = val;
}
void SetIKAll(bool pAim, bool pRArm, bool pLArm)
{
int val = 0;
if (pAim) val |= IKSETTING_AIMING;
if (pRArm) val |= IKSETTING_RHAND;
if (pLArm) val |= IKSETTING_LHAND;
int i;
for (i = 0; i < 24; i++)
{
m_IKSettings[i] = val;
}
for (i = 0; i < 2; i++)
{
m_IKSettingsMelee[i] = val;
}
}
}
// *************************************************************************************
// ! HumanItemAccessor - item helpers
// *************************************************************************************
class HumanItemAccessor
{
//! signalization from script to engine that item in hands changed
proto native void OnItemInHandsChanged(bool pInstant = false);
//! reset weapon anim override in case of premature death
proto native void ResetWeaponInHands();
//! hides item in hands visually
proto native void HideItemInHands(bool pState);
//! returns if item in hands is hidden visually
proto native bool IsItemInHandsHidden();
//! returns true if item in hands is a weapon
proto native bool IsItemInHandsWeapon();
//! returns true if weapon is item and it has camera point - local pos, dir in weapon space
proto native bool WeaponGetCameraPoint(out vector pPos, out vector pRot);
//! returns true if weapon is item and it has camera point - model space matrix -
proto native bool WeaponGetCameraPointMSTransform (notnull EntityAI pCamEntity, vector pCamPoint, vector pCamDir, out vector pTm[4]);
//! returns true if weapon is item and it has camera point - model space matrix -
proto native bool WeaponGetCameraPointBoneRelative(notnull EntityAI pCamEntity, vector pCamPoint, vector pCamDir, int pBoneIndex, out vector pTm[4]);
//! return current aiming point from aiming model (additive swaying applied - no recoil points)
proto native bool WeaponGetAimingModelDirTm(out vector pTm[4]);
//!
proto native HumanItemBehaviorCfg GetItemInHandsBehaviourCfg();
private void HumanItemAccessor()
{
}
private void ~HumanItemAccessor()
{
}
}
Esc
↑↓ to navigate · ↵ to open · type Class.member to scope