82 lines
1.6 KiB
C++
82 lines
1.6 KiB
C++
|
|
//////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Crytek Source code
|
|
// Copyright (c) Crytek 2001-2004
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "stdafx.h"
|
|
#include "xobjectproxy.h"
|
|
#include "xplayer.h"
|
|
|
|
CXObjectProxy::CXObjectProxy(IEntity *pEntity, IScriptSystem *pSystem)
|
|
{
|
|
m_pScriptSystem = pSystem;
|
|
m_pEntity = pEntity;
|
|
|
|
if (m_pEntity->GetContainer())
|
|
{
|
|
if (!m_pEntity->GetContainer()->QueryContainerInterface(CIT_IPLAYER,(void**) &m_pPlayer))
|
|
m_pPlayer = 0;
|
|
}
|
|
else
|
|
m_pPlayer = 0;
|
|
}
|
|
|
|
CXObjectProxy::~CXObjectProxy(void)
|
|
{
|
|
}
|
|
|
|
// Sets the name of the function that will be called when an incoming signal is intercepted
|
|
void CXObjectProxy::SetSignalFuncName(const char * szName)
|
|
{
|
|
}
|
|
|
|
int CXObjectProxy::Update(SOBJECTSTATE * state)
|
|
{
|
|
while (!state->vSignals.empty())
|
|
{
|
|
AISIGNAL sstruct = state->vSignals.back();
|
|
state->vSignals.pop_back();
|
|
|
|
switch(sstruct.nSignal)
|
|
{
|
|
case 1:
|
|
if (!stricmp(sstruct.strText,"PERCEPTION_RESET"))
|
|
m_pEntity->SendScriptEvent(ScriptEvent_AllClear,0);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void CXObjectProxy::SendSignal(SOBJECTSTATE * pState)
|
|
{
|
|
}
|
|
|
|
bool CXObjectProxy::CustomUpdate(Vec3d &pos, Vec3d &angle)
|
|
{
|
|
if (m_pPlayer)
|
|
{
|
|
if (m_pPlayer->m_bFirstPerson && m_pEntity->GetCamera())
|
|
{
|
|
pos = m_pEntity->GetCamera()->GetPos();
|
|
if ( (1.f -fabs(m_pPlayer->m_walkParams.fLeanTarget)) < 0.0001f )
|
|
m_pEntity->GetAI()->SetEyeHeight(0.1f);
|
|
return true;
|
|
}
|
|
angle.z = m_pPlayer->m_LegAngle;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
void CXObjectProxy::DebugDraw(struct IRenderer * pRenderer)
|
|
{
|
|
}
|