#include "pch.h"
#include "TurnToAction.h"
#include "TypeIDTarget.h"
namespace Training
{
extern ControlData g_setInputControls; TurnToAction::TurnToAction (ImodelIGC* pObject, ImodelIGC* pTarget) :
m_pObject (new TypeIDTarget (pObject->GetObjectType (), pObject->GetObjectID ())),
m_pTarget (new TypeIDTarget (pTarget->GetObjectType (), pTarget->GetObjectID ()))
{
}
TurnToAction::TurnToAction (ImodelIGC* pObject, ObjectType targetType, ObjectID targetID) :
m_pObject (new TypeIDTarget (pObject->GetObjectType (), pObject->GetObjectID ())),
m_pTarget (new TypeIDTarget (targetType, targetID))
{
}
TurnToAction::TurnToAction (ImodelIGC* pObject, AbstractTarget* pTarget) :
m_pObject (new TypeIDTarget (pObject->GetObjectType (), pObject->GetObjectID ())),
m_pTarget (pTarget)
{
}
TurnToAction::~TurnToAction (void)
{
delete m_pObject;
delete m_pTarget;
}
void TurnToAction::Execute (void)
{
IshipIGC* pShip = static_cast<IshipIGC*> (static_cast<ImodelIGC*> (*m_pObject));
ImodelIGC* pTarget = static_cast<ImodelIGC*> (*m_pTarget);
if (pShip && pTarget)
{
Vector delta = pTarget->GetPosition () - pShip->GetPosition ();
turnToFace (delta, GetWindow ()->GetDeltaTime (), pShip, &g_setInputControls);
g_setInputControls.jsValues[c_axisYaw] *= 0.5f;
g_setInputControls.jsValues[c_axisPitch] *= 0.5f;
g_setInputControls.jsValues[c_axisRoll] *= 0.5f;
}
else
{
g_setInputControls.jsValues[c_axisYaw] = NA;
g_setInputControls.jsValues[c_axisPitch] = NA;
g_setInputControls.jsValues[c_axisRoll] = NA;
}
}
}