7 static const float CONST_UD_MIN_BACK = -25.0;
12 protected bool m_isEntering =
false;
13 protected bool m_opticsHasWeaponOverride =
false;
19 float m_velocityYaw[1];
20 float m_velocityPitch[1];
36 m_iBoneIndex = pPlayer.GetBoneIndexByName(
"RightHand_Dummy");
40 Print(
"DayZPlayerCamera1stPerson: main bone not found");
43 m_dynamicsStrength = 2;
44 m_dynamicsSmoothTime = 0.3;
51 m_movementTimeAcc = 0;
52 m_movementAmplitudeX = 1;
53 m_movementAmplitudeY = 1;
54 m_movementFrequencyX = 1;
55 m_movementFrequencyY = 2;
57 Class.
CastTo(m_RequesterADS,PPERequester_CameraADS.Cast(PPERequesterBank.GetRequester(PPERequester_CameraADS)));
70 m_SightMisalignmentModifier =
m_weaponUsed.GetPropertyModifierObject().m_SightMisalignment;
71 m_dynamicsStrength = m_dynamicsStrength * m_SightMisalignmentModifier[0];
72 m_dynamicsSmoothTime = m_dynamicsSmoothTime * m_SightMisalignmentModifier[1];
76 m_opticsHasWeaponOverride =
m_opticsUsed.HasWeaponIronsightsOverride();
89 super.OnActivate(pPrevCamera, pPrevCameraResult);
93 vector baseAngles = pPrevCamera.GetBaseAngles();
97 vector addAngles = pPrevCamera.GetAdditiveAngles();
105 if (m_opticsHasWeaponOverride)
123 m_opticsUsed.UseWeaponIronsightsOverride(m_opticsHasWeaponOverride);
166 m_movementTimeAcc += pDt;
168 m_movementTimeAcc = 0;
170 aimChangeX += m_movementAmplitudeX * speed *
Math.
Sin(
Math.
PI2 * m_movementFrequencyX * m_movementTimeAcc);
171 aimChangeY += m_movementAmplitudeY * speed *
Math.
Sin(
Math.
PI2 * m_movementFrequencyY * m_movementTimeAcc);
174 aimChangeYPR[0] =
Math.
SmoothCD(aimChangeYPR[0], -(m_dynamicsStrength * aimChangeY), m_velocityYaw, m_dynamicsSmoothTime, 1000, pDt);
175 aimChangeYPR[1] =
Math.
SmoothCD(aimChangeYPR[1], -(m_dynamicsStrength * aimChangeX), m_velocityPitch, m_dynamicsSmoothTime, 1000, pDt);
184 hia.WeaponGetAimingModelDirTm(aimingMatTM);
223 pOutResult.m_iDirectBoneMode = 4;
227 pOutResult.m_bUpdateWhenBlendOut =
false;
228 pOutResult.m_fDistance = 0;
229 pOutResult.m_fUseHeading = 0;
230 pOutResult.m_fInsideCamera = 1.0;
233 pOutResult.m_fNearPlane = 0.04;
242 else if (m_isEntering)
245 m_isEntering =
false;
268 m_RequesterADS.Stop();
281 temp_array = {
false, 0.0, 0.0, 0.0, 0.0, 1.0};
293 if (temp_array.Count() != 6)
294 temp_array = {
false, 0.0, 0.0, 0.0, 0.0, 1.0};
297 m_RequesterADS.SetValuesIronsights(temp_array);
317 return "DayZPlayerCameraIronsights";
322 if (pPrevCamera.GetCameraName() ==
"DayZPlayerCamera1stPerson")
327 else if (pPrevCamera.GetCameraName() ==
"DayZPlayerCameraOptics")
342 optics.UpdateOpticsReddotVisibility();
402 super.OnActivate(pPrevCamera,pPrevCameraResult);
414 pOutResult.m_iDirectBoneMode = 4;
418 pOutResult.m_bUpdateWhenBlendOut =
false;
419 pOutResult.m_fDistance = 0;
420 pOutResult.m_fUseHeading = 0;
421 pOutResult.m_fInsideCamera = 1.0;
444 else if (m_isEntering)
447 m_isEntering =
false;
474 m_RequesterADS.Stop();
495 temp_array = {
false, 0.0, 0.0, 0.0, 0.0, 1.0};
511 if (temp_array.Count() != 6)
512 temp_array = {
false, 0.0, 0.0, 0.0, 0.0, 1.0};
515 m_RequesterADS.SetValuesIronsights(temp_array);
555 m_RequesterADS.SetValuesOptics(mask_values,lens_values,gauss);
578 return "DayZPlayerCameraOptics";
583 if (pPrevCamera.GetCameraName() ==
"DayZPlayerCameraIronsights")
587 else if (pPrevCamera.GetCameraName() ==
"DayZPlayerCamera1stPerson")
591 else if (!pPrevCamera.IsCamera3rdRaised())
static const float CONST_UD_MAX
up limit
protected float m_fUpDownAngleAdd
up down angle in rad
static const float CONST_LR_MIN
down limit
protected float m_fLeftRightAngle
left right angle in rad (in freelook only)
static const float CONST_LR_MAX
up limit
protected float m_fUpDownAngle
up down angle in rad
protected float m_fLeftRightAngleAdd
left right angle in rad (in freelook only)
protected int m_iBoneIndex
main bone
static const float CONST_UD_MIN
down limit
protected float m_WeaponSwayModifier
float UpdateLRAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
protected float m_CurrentCameraPitch
protected ItemOptics m_opticsUsed
float UpdateUDAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
protected Weapon_Base m_weaponUsed
protected ref CameraShake m_CameraShake
protected float m_fFovAbsVel[1]
void SetNVPostprocess(int NVtype)
DayZPlayerCameraOptics handles this separately, otherwise it takes active NVType from PlayerBase::Get...
void SetCameraPP(bool state, DayZPlayerCamera launchedFrom)
by default sets camera PP to zero, regardless of parameter. Override if needed.
protected float m_CurrentCameraYaw
void SetCameraNV(bool nightvision)
protected float m_CameraPPDelay
void UpdateCameraNV(PlayerBase player)
void SetCameraPPDelay(DayZPlayerCamera pPrevCamera)
void DayZPlayerCameraOptics(DayZPlayer pPlayer, HumanInputController pInput)
override bool GetCurrentSightInfo(out vector camPos, out vector camDir)
override float HoldBreathFOVEffect(float pDt)
override EntityAI GetCurrentSightEntity()
override void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
override void AdjustCameraParameters(float pDt, inout DayZPlayerCameraResult pOutResult)
class DayZPlayerCameraIronsights extends DayZPlayerCameraBase CONST_NEARPLANE_OPTICS
protected float m_RecoilOffsetZ
override ScriptCallQueue GetCallQueue(int call_category)
void Update(float delta_time, out float x_axis, out float y_axis)
Super root of all classes in Enforce script.
this is main camera class
void DayZPlayerCameraIronsights(DayZPlayer pPlayer, HumanInputController pInput)
override void OnActivate(DayZPlayerCamera pPrevCamera, DayZPlayerCameraResult pPrevCameraResult)
protected PPERequester_CameraADS m_RequesterADS
float m_movementAmplitudeY
protected ref array< float > temp_array
override vector GetAdditiveAngles()
override string GetCameraName()
override void OnUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
float m_movementFrequencyX
EntityAI GetCurrentSightEntity()
void SetupSightEntities()
protected float m_fUpDownAngleAdd
up down angle in rad
protected float m_fLeftRightAngle
left right angle in rad (in freelook only)
float HoldBreathFOVEffect(float pDt)
void UpdateBatteryOptics(EntityAI entity)
protected float m_fUpDownAngle
up down angle in rad
static const float CONST_UD_MIN_BACK
down limit on back
static const float CONST_UD_MIN
down limit
protected float m_fLeftRightAngleAdd
left right angle in rad (in freelook only)
float m_movementAmplitudeX
float m_dynamicsSmoothTime
protected int m_iBoneIndex
main bone
protected vector m_OpticsCamDir
protected float m_fShootFromCamera
settings
bool GetCurrentSightInfo(out vector camPos, out vector camDir)
override void SetCameraPP(bool state, DayZPlayerCamera launchedFrom)
void AdjustCameraParameters(float pDt, inout DayZPlayerCameraResult pOutResult)
override void SetCameraPPDelay(DayZPlayerCamera pPrevCamera)
protected vector m_OpticsCamPos
vector m_SightMisalignmentModifier
float m_movementFrequencyY
override vector GetBaseAngles()
static const float TIME_CAMERACHANGE_02
static const float TIME_CAMERACHANGE_01
for two handed items
static const float TIME_CAMERACHANGE_03
override int GetEyeZoomLevel()
proto native float GetCurrentMovementSpeed()
0,1,2..3 idle, walk, run, sprint
proto void CallLater(func fn, int delay=0, bool repeat=false, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
adds call into the queue with given parameters and arguments (arguments are held in memory until the ...
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
DayZPlayerConstants
defined in C++
void SendRecoilOffsetZ(float offset)
m_fCamPosOffsetZ info, used to adjust near plane in DayZPlayerCameraIronsights now
protected DayZPlayer m_pPlayer
data
protected HumanInputController m_pInput
human input
float m_fShootFromCamera
1(default) - uses shoot from camera (+aiming sway), 0 pure weapon shoot (ironsights == 0)
class DayZPlayerCameraResult DayZPlayerCamera(DayZPlayer pPlayer, HumanInputController pInput)
float m_fFovAbsolute
fov absolute value override - -1.0 default, if set - overrides absolute fov setting
proto native CGame GetGame()
proto void Print(void var)
Prints content of variable to console/log.
const float DZPLAYER_CAMERA_FOV_IRONSIGHTS
const float DZPLAYER_CAMERA_FOV_EYEZOOM
FOV (vertical angle/2) in radians. Take care to modify also in "basicDefines.hpp".
static proto bool CastTo(out Class to, Class from)
Try to safely down-cast base class to child class.
static proto void MatrixMultiply4(vector mat0[4], vector mat1[4], out vector res[4])
Transforms matrix.
static proto void YawPitchRollMatrix(vector ang, out vector mat[3])
Creates rotation matrix from angles.
static proto float Clamp(float value, float min, float max)
Clamps 'value' to 'min' if it is lower than 'min', or to 'max' if it is higher than 'max'.
static proto float SmoothCD(float val, float target, inout float velocity[], float smoothTime, float maxVelocity, float dt)
Does the CD smoothing function - easy in | easy out / S shaped smoothing.
static const float RAD2DEG
static proto float Sin(float angle)
Returns sinus of angle in radians.
class HumanMovementState OnActivate()
HumanCommandScript fully scriptable command.
private void HumanItemAccessor()