123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- // *************************************************************************************
- // ! 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()
- {
- }
- }
|