2float Limit(
float pV,
float pMin,
float pMax)
4 if (pV >= pMin && pV <= pMax)
21 while (pAngle >
Math.PI)
27 while (pAngle < -
Math.PI)
123 if ( player && player.IsNVGWorking() !=
IsCameraNV() )
143 if (
Math.AbsFloat(pAngleAdd) > 0.001)
145 pAngleAdd = pAngle + pAngleAdd - target;
151 pAngleAdd +=
m_pInput.GetAimDelta(pDt)[1] *
Math.RAD2DEG;
160 float pitch = pAngle + pAngleAdd;
161 float downLimit, upLimit, leftLimit, rightLimit;
162 player.GetLookLimits(downLimit, upLimit, leftLimit, rightLimit);
164 if (pitch < (upLimit + 1) && pitch > (downLimit - 1))
172 pMin =
Math.SmoothCD(pitch, downLimit, vel, 0.2, 1000, pDt);
173 pMax =
Math.SmoothCD(pitch, upLimit, vel, 0.2, 1000, pDt);
186 pAngle =
Limit(pAngle, pMin, pMax);
187 pAngleAdd =
Limit(pAngle + pAngleAdd, pMin, pMax) - pAngle;
188 return pAngle + pAngleAdd;
204 if (
Math.AbsFloat(pAngleAdd) > 0.001)
206 pAngleAdd = pAngle + pAngleAdd - target;
212 pAngleAdd +=
m_pInput.GetAimDelta(pDt)[0] *
Math.RAD2DEG;
221 pAngleAdd = pAngleAdd + pAngle;
224 pAngle =
Limit(pAngle, pMin, pMax);
225 pAngleAdd =
Limit(pAngle + pAngleAdd, pMin, pMax) - pAngle;
227 return pAngle + pAngleAdd;
230 float UpdateUDAngle(out
float pAngle, out
float pAngleAdd,
float pMin,
float pMax,
float pDt)
232 if (
Math.AbsFloat(pAngleAdd) > 0.001)
240 pAngleAdd = pAngle + pAngleAdd - aimingUDAngle;
241 pAngle = aimingUDAngle;
250 pAngleAdd =
Limit(pAngleAdd, pMin, pMax);
259 pAngleAdd =
Limit(pAngleAdd, pMin, pMax);
267 pAngle =
Limit(pAngle, pMin, pMax);
279 return Limit(pAngle + pAngleAdd, pMin, pMax);
289 pAngle =
Limit(pAngle, pMin, pMax);
299 pAngle =
Limit(-pAngle, pMin, pMax);
341 pOutResult.m_fShootFromCamera = 0.0;
354 Debug.Log(
"DayZPlayerCameraBase | OnUpdate | no player!");
364 super.OnUpdate(pDt, pOutResult);
377 PPERequesterBank.GetRequester(PPERequesterBank.REQ_CAMERANV).Start(
new Param1<int>(PPERequester_CameraNV.NV_TRANSITIVE) );
393 override string GetCameraName()
395 return "DayZPlayerCameraBase";
438 PPERequesterBank.GetRequester(PPERequester_CameraADS).Stop();
481 if (
GetGame().GetMission() &&
GetGame().GetMission().GetEffectWidgets())
482 GetGame().GetMission().GetEffectWidgets().
RemoveActiveEffects({EffectWidgetsTypes.NVG_OCCLUDER,EffectWidgetsTypes.PUMPKIN_OCCLUDER});
488 PPERequesterBank.GetRequester(PPERequester_CameraNV).Stop();
493 case NVTypes.NV_OPTICS_KAZUAR_NIGHT:
494 case NVTypes.NV_OPTICS_STARLIGHT_NIGHT:
497 PPERequesterBank.GetRequester(PPERequesterBank.REQ_CAMERANV).Start(
new Param1<int>(PPERequester_CameraNV.NV_DEFAULT_OPTICS) );
502 case NVTypes.NV_OPTICS_KAZUAR_DAY:
503 case NVTypes.NV_OPTICS_STARLIGHT_DAY:
505 PPERequesterBank.GetRequester(PPERequesterBank.REQ_CAMERANV).Start(
new Param1<int>(PPERequester_CameraNV.NV_DAYTIME_OPTICS) );
512 PPERequesterBank.GetRequester(PPERequesterBank.REQ_CAMERANV).Start(
new Param1<int>(PPERequester_CameraNV.NV_NO_BATTERY) );
518 PPERequesterBank.GetRequester(PPERequesterBank.REQ_CAMERANV).Start(
new Param1<int>(PPERequester_CameraNV.NV_DEFAULT_GLASSES) );
519 if (
GetGame().GetMission() &&
GetGame().GetMission().GetEffectWidgets())
526 PPERequesterBank.GetRequester(PPERequesterBank.REQ_CAMERANV).Start(
new Param1<int>(PPERequester_CameraNV.NV_DEFAULT_GLASSES) );
532 PPERequesterBank.GetRequester(PPERequesterBank.REQ_CAMERANV).Start(
new Param1<int>(PPERequester_CameraNV.NV_PUMPKIN) );
533 if (
GetGame().GetMission() &&
GetGame().GetMission().GetEffectWidgets())
548 if (!player.GetCurrentPlayerCamera() || (force && player.GetCurrentPlayerCamera() !=
this))
550 player.OnCameraChanged(
this);
this is main camera class
override void SetCameraPP(bool state, DayZPlayerCamera launchedFrom)
override void SetCameraPPDelay(DayZPlayerCamera pPrevCamera)
override bool IsShootingFromCamera()
override int GetEyeZoomLevel()
void SpawnCameraShakeProper(float strength, float radius, float smoothness, float radius_decay_speed)
HumanInputController m_pInput
human input
class DayZPlayerCameraResult DayZPlayerCamera(DayZPlayer pPlayer, HumanInputController pInput)
float m_fFovAbsolute
fov absolute value override - -1.0 default, if set - overrides absolute fov setting
float UpdateLRAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
ref CameraShake m_CameraShake
float m_CurrentCameraPitch
float UpdateUDAngleUnlocked(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
void StdFovUpdate(float pDt, out DayZPlayerCameraResult pOutResult)
@ NV_OPTICS_STARLIGHT_DAY
@ NV_OPTICS_STARLIGHT_NIGHT
float m_CurrentCameraRoll
float fixAngle_PI_PI(float pAngle)
float UpdateLRAngle(float pAngle, float pMin, float pMax, float pDt)
float GetWeaponSwayModifier()
void DayZPlayerCameraBase(DayZPlayer pPlayer, HumanInputController pInput)
constructor must be same
void SetNVPostprocess(int NVtype)
DayZPlayerCameraOptics handles this separately, otherwise it takes active NVType from PlayerBase::Get...
void InitCameraOnPlayer(bool force=false)
void HandleShoulderCameraOverride(HumanInputController pInput)
float fixAngle_180_180(float pAngle)
void SetCameraNV(bool nightvision)
float m_WeaponSwayModifier
enum NVTypes CONST_NEARPLANE_OPTICS_MIN
void UpdateCameraNV(PlayerBase player)
void SetCameraNVType(int type)
void ForceFreelook(bool state)
float UpdateUDAngle(out float pAngle, out float pAngleAdd, float pMin, float pMax, float pDt)
HumanCommandWeapons m_CommandWeapons
void ProcessCameraShake(float delta, out float leftRight, out float upDown)
void DayZPlayerCameraOptics(DayZPlayer pPlayer, HumanInputController pInput)
override void Init()
Launched from 'DayZGame.DeferredInit' to make earlier access, use, and updates impossible (downside o...
proto native CGame GetGame()
HumanInputControllerOverrideType