DayZ 1.27
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 строка 2711

2712 {
2715 {
2716 ItemOptics optics = null;
2717 EntityAI entityInHands = GetHumanInventory().GetEntityInHands();
2718 Weapon weapon = Weapon.Cast(entityInHands);
2719 if (weapon)
2720 optics = weapon.GetAttachedOptics();
2721 else if (entityInHands)
2722 Class.CastTo(optics,entityInHands);
2723
2724 if (m_CameraOptics && optics)
2725 {
2726 return DayZPlayerCameras.DAYZCAMERA_OPTICS;
2727 }
2728 else if (m_CameraIronsight && weapon)
2729 {
2730 return DayZPlayerCameras.DAYZCAMERA_IRONSIGHTS;
2731 }
2732 }
2733
2734 // If the logic above doesn't reach optics nor ironsights camera,
2735 // yet weapon is still raised and ads is wanted, enforce 1pv camera
2736 // as this will reduce erratic behaviour of camera switching in 3pv
2737 HumanInputController hic = GetInputController();
2738 if (m_Camera3rdPerson && m_IsWeapon && m_IsRaised && hic && hic.WeaponADS())
2739 {
2740 return DayZPlayerCameras.DAYZCAMERA_1ST;
2741 }
2742
2743 //uncon
2744 if ( GetCurrentCommandID() == DayZPlayerConstants.COMMANDID_UNCONSCIOUS )
2745 {
2746 return DayZPlayerCameras.DAYZCAMERA_1ST_UNCONSCIOUS;
2747 }
2748
2749 HumanCommandVehicle vehicleCommand = GetCommand_Vehicle();
2750
2751 if (!m_Camera3rdPerson)
2752 {
2753 if (vehicleCommand)
2754 {
2755 return DayZPlayerCameras.DAYZCAMERA_1ST_VEHICLE;
2756 }
2757
2758 return DayZPlayerCameras.DAYZCAMERA_1ST;
2759 }
2760 else
2761 {
2762 if (vehicleCommand)
2763 {
2764 Transport transport = vehicleCommand.GetTransport();
2765 if (transport && GetParent())
2766 {
2767 return transport.Get3rdPersonCameraType();
2768 }
2769 }
2770
2772 GetMovementState(m_MovementState);
2773
2777
2779
2781
2782 if (m_MovementState.m_CommandTypeId == DayZPlayerConstants.COMMANDID_CLIMB)
2783 {
2784 return DayZPlayerCameras.DAYZCAMERA_3RD_CLIMB;
2785 }
2786
2787 if (m_JumpClimb.m_bIsJumpInProgress)
2788 {
2789 return DayZPlayerCameras.DAYZCAMERA_3RD_JUMP;
2790 }
2791
2792 int targetStanceIndex = m_MovementState.m_iStanceIdx;
2793
2795 HumanCommandMove commandMove = GetCommand_Move();
2796 if (commandMove && commandMove.IsChangingStance() && m_MovementState.IsRaised())
2797 {
2798 targetStanceIndex = m_MovementState.m_iStanceIdx - DayZPlayerConstants.STANCEIDX_RAISED;
2799 }
2800
2801 //
2802 // normal movement cameras
2803 if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_CROUCH)
2804 {
2805 return DayZPlayerCameras.DAYZCAMERA_3RD_CRO;
2806 }
2807 else if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_RAISEDCROUCH)
2808 {
2809 return DayZPlayerCameras.DAYZCAMERA_3RD_CRO_RAISED;
2810 }
2811 else if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_PRONE)
2812 {
2813 return DayZPlayerCameras.DAYZCAMERA_3RD_PRO;
2814 }
2815 else if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_RAISEDPRONE)
2816 {
2817 return DayZPlayerCameras.DAYZCAMERA_3RD_PRO_RAISED;
2818 }
2819
2820 if (targetStanceIndex == DayZPlayerConstants.STANCEIDX_RAISEDERECT)
2821 {
2822 if (m_IsWeapon)
2823 {
2824 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC_RAISED;
2825 }
2826 else
2827 {
2828 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC_RAISED_MELEE;
2829 }
2830 }
2831 else if (targetStanceIndex == DayZPlayerConstants.MOVEMENTIDX_SPRINT)
2832 {
2833 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC_SPR;
2834 }
2835
2836 // DayZPlayerConstants.STANCEIDX_ERECT
2837 return DayZPlayerCameras.DAYZCAMERA_3RD_ERC;
2838 }
2839
2840 return DayZPlayerCameras.DAYZCAMERA_1ST;
2841 }
class LogManager EntityAI
ref DayZPlayerImplementJumpClimb m_JumpClimb
Определения DayZPlayerImplement.c:122
bool m_Camera3rdPerson
Определения DayZPlayerImplement.c:133
bool m_CameraIronsight
Определения DayZPlayerImplement.c:139
bool m_IsWeapon
Определения DayZPlayerImplement.c:176
bool m_CameraOptics
Определения DayZPlayerImplement.c:140
ref HumanMovementState m_MovementState
time step for gradual update of dead screen visibilibty up to full visbility [s]
Определения DayZPlayerImplement.c:116
bool m_LiftWeapon_player
Определения DayZPlayerImplement.c:158
bool m_IsRaised
Определения DayZPlayerImplement.c:131
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:407
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(), m_Camera3rdPerson, m_CameraIronsight, m_CameraOptics, m_IsRaised, m_IsWeapon, m_JumpClimb, m_LiftWeapon_player, m_MovementState и HumanInputController::WeaponADS().