Files
GTASource/game/camera/cinematic/shot/CinematicFallFromHeliShot.cpp
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

75 lines
2.1 KiB
C++

//
// camera/cinematic/shot/camCinematicFallFromHeliShot.cpp
//
// Copyright (C) 1999-2011 Rockstar Games. All Rights Reserved.
//
#include "camera/cinematic/shot/CinematicFallFromHeliShot.h"
#include "camera/cinematic/camera/tracking/CinematicStuntCamera.h"
#include "camera/cinematic/camera/mounted/CinematicMountedCamera.h"
#include "camera/cinematic/camera/mounted/CinematicMountedPartCamera.h"
#include "camera/cinematic/context/CinematicFallFromHeliContext.h"
#include "camera\cinematic\camera\tracking\CinematicVehicleTrackingCamera.h"
#include "peds/ped.h"
#include "peds/PedIntelligence.h"
#include "vehicles/Metadata/VehicleEntryPointInfo.h"
#include "vehicles/trailer.h"
#include "task/Vehicle/TaskExitVehicle.h"
INSTANTIATE_RTTI_CLASS(camCinematicFallFromHeliShot,0x37B90D2F)
CAMERA_OPTIMISATIONS()
camCinematicFallFromHeliShot::camCinematicFallFromHeliShot(const camBaseObjectMetadata& metadata)
: camBaseCinematicShot(metadata)
, m_Metadata(static_cast<const camCinematicFallFromHeliShotMetadata&>(metadata))
{
}
bool camCinematicFallFromHeliShot::IsValid() const
{
if(!camBaseCinematicShot::IsValidForGameState())
{
return false;
}
return true;
}
void camCinematicFallFromHeliShot::InitCamera()
{
if(m_AttachEntity && m_LookAtEntity)
{
if(m_UpdatedCamera->GetIsClassId(camCinematicMountedCamera::GetStaticClassId()))
{
camCinematicMountedCamera* pCam = static_cast<camCinematicMountedCamera*>(m_UpdatedCamera.Get());
pCam->ShouldDisableControlHelper(true);
pCam->LookAt(m_LookAtEntity);
pCam->SetLookAtBehaviour(LOOK_AT_FOLLOW_PED_RELATIVE_POSITION);
pCam->AttachTo(m_AttachEntity);
}
}
}
const CEntity* camCinematicFallFromHeliShot::ComputeAttachEntity() const
{
if(m_pContext && (m_pContext->GetClassId() == camCinematicFallFromHeliContext::GetStaticClassId()))
{
camCinematicFallFromHeliContext* pContext = static_cast<camCinematicFallFromHeliContext*>(m_pContext);
return pContext->GetTargetEntity();
}
return NULL;
}
bool camCinematicFallFromHeliShot::CanCreate()
{
if(m_AttachEntity && m_LookAtEntity)
{
return true;
}
return false;
}