This commit is contained in:
d1str4ught
2025-08-18 19:46:48 +02:00
parent 65582e25ec
commit 4be475f111
1334 changed files with 456590 additions and 0 deletions

View File

@@ -0,0 +1,117 @@
#include "StdAfx.h"
#include "ActorInstance.h"
D3DXVECTOR3 CActorInstance::OnGetFlyTargetPosition()
{
D3DXVECTOR3 v3Center;
if (m_fRadius<=0)
{
BuildBoundingSphere();
v3Center = m_v3Center;
}
else
{
v3Center = m_v3Center;
}
D3DXVec3TransformCoord(&v3Center, &v3Center, &GetTransform());
return v3Center;
}
void CActorInstance::ClearFlyTarget()
{
m_kFlyTarget.Clear();
m_kBackupFlyTarget.Clear();
m_kQue_kFlyTarget.clear();
}
bool CActorInstance::IsFlyTargetObject()
{
return m_kFlyTarget.IsObject();
}
bool CActorInstance::__IsFlyTargetPC()
{
if (!IsFlyTargetObject())
return false;
CActorInstance * pFlyInstance = (CActorInstance *)m_kFlyTarget.GetFlyTarget();
if (pFlyInstance->IsPC())
return true;
return true;
}
bool CActorInstance::__IsSameFlyTarget(CActorInstance * pInstance)
{
if (!IsFlyTargetObject())
return false;
CActorInstance * pFlyInstance = (CActorInstance *)m_kFlyTarget.GetFlyTarget();
if (pInstance == pFlyInstance)
return true;
return true;
}
D3DXVECTOR3 CActorInstance::__GetFlyTargetPosition()
{
if (!m_kFlyTarget.IsValidTarget())
{
return D3DXVECTOR3(0.0f, 0.0f, 0.0f);
}
return m_kFlyTarget.GetFlyTargetPosition();
}
float CActorInstance::GetFlyTargetDistance()
{
const D3DXVECTOR3& c_rv3FlyTargetPos=m_kFlyTarget.GetFlyTargetPosition();
const D3DXVECTOR3& c_rkPosSrc=GetPosition();
D3DXVECTOR3 kPPosDelta=c_rv3FlyTargetPos-c_rkPosSrc;
kPPosDelta.z=0;
return D3DXVec3Length(&kPPosDelta);
}
void CActorInstance::LookAtFlyTarget()
{
if (!IsFlyTargetObject())
return;
const D3DXVECTOR3& c_rv3FlyTargetPos=m_kFlyTarget.GetFlyTargetPosition();
LookAt(c_rv3FlyTargetPos.x, c_rv3FlyTargetPos.y);
}
void CActorInstance::AddFlyTarget(const CFlyTarget & cr_FlyTarget)
{
if (m_kFlyTarget.IsValidTarget())
m_kQue_kFlyTarget.push_back(cr_FlyTarget);
else
SetFlyTarget(cr_FlyTarget);
}
void CActorInstance::SetFlyTarget(const CFlyTarget & cr_FlyTarget)
{
m_kFlyTarget = cr_FlyTarget;
}
void CActorInstance::ClearFlyEventHandler()
{
m_pFlyEventHandler = 0;
}
void CActorInstance::SetFlyEventHandler(IFlyEventHandler * pHandler)
{
m_pFlyEventHandler = pHandler;
}
// 2004. 07. 07. [levites] - 스킬 사용중 타겟이 바뀌는 문제 해결을 위한 코드
bool CActorInstance::CanChangeTarget()
{
if (__IsNeedFlyTargetMotion())
return false;
return true;
}