DayZ 1.29
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ CameraHandler()

override int DayZPlayer::CameraHandler ( int pCameraMode)
inlineprotected

This is main camera selection logic

ironsights

get movement state

VKOSTIK: v ostatnich commandech mimo COMMANDID_MOVE je m_MovementState.m_iStanceIdx - DayZPlayerConstants.STANCEIDX_ERECT m_MovementState.m_iMovement = 0 (idle)

COMMANDID_ACTION returns stance right - ERECT/CROUCH

melee camera - not melee - stays in stance camera

special handling to allow the camera to fully blend before transitioning to the raised one

См. определение в файле DayZPlayerImplement.c строка 2811

2812 {
2815 {
2816 ItemOptics optics = null;
2817 EntityAI entityInHands = GetEntityInHands();
2818 Weapon weapon = Weapon.Cast(entityInHands);
2819 if (weapon)
2820 optics = weapon.GetAttachedOptics();
2821 else if (entityInHands)
2822 Class.CastTo(optics,entityInHands);
2823
2824 if (m_CameraOptics && optics)
2825 {
2826 return DayZPlayerCameras.DAYZCAMERA_OPTICS;
2827 }
2828 else if (m_CameraIronsight && weapon)
2829 {
2830 return DayZPlayerCameras.DAYZCAMERA_IRONSIGHTS;
2831 }
2832 }
2833
2834 // If the logic above doesn't reach optics nor ironsights camera,
2835 // yet weapon is still raised and ads is wanted, enforce 1pv camera
2836 // as this will reduce erratic behaviour of camera switching in 3pv
2837 HumanInputController hic = GetInputController();
2838 if (m_Camera3rdPerson && m_IsWeapon && m_IsRaised && hic && hic.WeaponADS())
2839 {
2840 return DayZPlayerCameras.DAYZCAMERA_1ST;
2841 }
2842
2843 //uncon
2844 if ( GetCurrentCommandID() == DayZPlayerConstants.COMMANDID_UNCONSCIOUS )
2845 {
2846 return DayZPlayerCameras.DAYZCAMERA_1ST_UNCONSCIOUS;
2847 }
2848
2849 HumanCommandVehicle vehicleCommand = GetCommand_Vehicle();
2850
2851 if (!m_Camera3rdPerson)
2852 {
2853 if (vehicleCommand)
2854 {
2855 return DayZPlayerCameras.DAYZCAMERA_1ST_VEHICLE;
2856 }
2857
2858 return DayZPlayerCameras.DAYZCAMERA_1ST;
2859 }
2860 else
2861 {
2862 if (vehicleCommand)
2863 {
2864 Transport transport = vehicleCommand.GetTransport();
2865 if (transport && GetParent())
2866 {
2867 return transport.Get3rdPersonCameraType();
2868 }
2869 }
2870
2872 GetMovementState(m_MovementState);
2873
2877
2879
2881
2882 if (m_MovementState.m_CommandTypeId == DayZPlayerConstants.COMMANDID_CLIMB)
2883 {
2884 return DayZPlayerCameras.DAYZCAMERA_3RD_CLIMB;
2885 }
2886
2887 if (m_JumpClimb.m_bIsJumpInProgress)
2888 {
2889 return DayZPlayerCameras.DAYZCAMERA_3RD_JUMP;
2890 }
2891
2892 int targetStanceIndex = m_MovementState.m_iStanceIdx;
2893
2895 HumanCommandMove commandMove = GetCommand_Move();
2896 if (commandMove && commandMove.IsChangingStance() && m_MovementState.IsRaised())
2897 {
2898 targetStanceIndex = m_MovementState.m_iStanceIdx - DayZPlayerConstants.STANCEIDX_RAISED;
2899 }
2900
2901 //
2902 // normal movement cameras
2903 if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_CROUCH)
2904 {
2905 return DayZPlayerCameras.DAYZCAMERA_3RD_CRO;
2906 }
2907 else if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_RAISEDCROUCH)
2908 {
2909 return DayZPlayerCameras.DAYZCAMERA_3RD_CRO_RAISED;
2910 }
2911 else if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_PRONE)
2912 {
2913 return DayZPlayerCameras.DAYZCAMERA_3RD_PRO;
2914 }
2915 else if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_RAISEDPRONE)
2916 {
2917 return DayZPlayerCameras.DAYZCAMERA_3RD_PRO_RAISED;
2918 }
2919
2920 if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_RAISEDERECT)
2921 {
2922 if (m_IsWeapon)
2923 {
2924 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC_RAISED;
2925 }
2926 else
2927 {
2928 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC_RAISED_MELEE;
2929 }
2930 }
2931 else if (targetStanceIndex == DayZPlayerConstants.MOVEMENTIDX_SPRINT)
2932 {
2933 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC_SPR;
2934 }
2935
2936 // DayZPlayerConstants.STANCEIDX_ERECT
2937 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC;
2938 }
2939
2940 return DayZPlayerCameras.DAYZCAMERA_1ST;
2941 }
class LogManager EntityAI
StarlightOptic ItemOptics
ref DayZPlayerImplementJumpClimb m_JumpClimb
Определения DayZPlayerImplement.c:98
bool m_Camera3rdPerson
Определения DayZPlayerImplement.c:109
bool m_CameraIronsight
Определения DayZPlayerImplement.c:115
bool IsWeaponObstructionBlockingADS()
bool m_IsWeapon
Определения DayZPlayerImplement.c:154
bool m_CameraOptics
Определения DayZPlayerImplement.c:116
ref HumanMovementState m_MovementState
time step for gradual update of dead screen visibilibty up to full visbility [s]
Определения DayZPlayerImplement.c:92
bool m_LiftWeapon_player
Определения DayZPlayerImplement.c:134
bool m_IsRaised
Определения DayZPlayerImplement.c:107
proto native bool IsChangingStance()
returns true if character is changing stance
proto native Transport GetTransport()
proto native bool WeaponADS()
returns true if weapon ADS mode
DayZPlayerConstants
defined in C++
Определения dayzplayer.c:602
proto native Widget GetParent()
Get parent of the Effect.
Определения Effect.c:422
void HumanCommandMove()
Определения human.c:514

Перекрестные ссылки Class::CastTo(), DayZPlayerCameras::DAYZCAMERA_1ST, DayZPlayerCameras::DAYZCAMERA_1ST_UNCONSCIOUS, DayZPlayerCameras::DAYZCAMERA_1ST_VEHICLE, DayZPlayerCameras::DAYZCAMERA_3RD_CLIMB, DayZPlayerCameras::DAYZCAMERA_3RD_CRO, DayZPlayerCameras::DAYZCAMERA_3RD_CRO_RAISED, DayZPlayerCameras::DAYZCAMERA_3RD_ERC, DayZPlayerCameras::DAYZCAMERA_3RD_ERC_RAISED, DayZPlayerCameras::DAYZCAMERA_3RD_ERC_RAISED_MELEE, DayZPlayerCameras::DAYZCAMERA_3RD_ERC_SPR, DayZPlayerCameras::DAYZCAMERA_3RD_JUMP, DayZPlayerCameras::DAYZCAMERA_3RD_PRO, DayZPlayerCameras::DAYZCAMERA_3RD_PRO_RAISED, DayZPlayerCameras::DAYZCAMERA_IRONSIGHTS, DayZPlayerCameras::DAYZCAMERA_OPTICS, GetParent(), HumanCommandVehicle::GetTransport(), HumanCommandMove::IsChangingStance(), IsWeaponObstructionBlockingADS(), m_Camera3rdPerson, m_CameraIronsight, m_CameraOptics, m_IsRaised, m_IsWeapon, m_JumpClimb, m_LiftWeapon_player, m_MovementState и HumanInputController::WeaponADS().