94 lines
2.0 KiB
C++
94 lines
2.0 KiB
C++
#include "StdAfx.h"
|
|
#include "InstanceBase.h"
|
|
#include "PythonBackground.h"
|
|
|
|
|
|
|
|
|
|
void CInstanceBase::SCRIPT_SetPixelPosition(float fx, float fy)
|
|
{
|
|
float fz = __GetBackgroundHeight(fx, fy);
|
|
NEW_SetPixelPosition(TPixelPosition(fx, fy, fz));
|
|
}
|
|
|
|
void CInstanceBase::NEW_SetPixelPosition(const TPixelPosition & c_rPixelPosition)
|
|
{
|
|
m_GraphicThingInstance.SetCurPixelPosition(c_rPixelPosition);
|
|
}
|
|
|
|
void CInstanceBase::NEW_GetPixelPosition(TPixelPosition * pPixelPosition)
|
|
{
|
|
*pPixelPosition=m_GraphicThingInstance.NEW_GetCurPixelPositionRef();
|
|
}
|
|
|
|
void CInstanceBase::SetRotation(float fRotation)
|
|
{
|
|
m_GraphicThingInstance.SetRotation(fRotation);
|
|
}
|
|
|
|
void CInstanceBase::BlendRotation(float fRotation, float fBlendTime)
|
|
{
|
|
m_GraphicThingInstance.BlendRotation(fRotation, fBlendTime);
|
|
}
|
|
|
|
void CInstanceBase::NEW_LookAtFlyTarget()
|
|
{
|
|
m_GraphicThingInstance.LookAtFlyTarget();
|
|
}
|
|
|
|
void CInstanceBase::NEW_LookAtDestPixelPosition(const TPixelPosition& c_rkPPosDst)
|
|
{
|
|
m_GraphicThingInstance.LookAt(c_rkPPosDst.x, -c_rkPPosDst.y);
|
|
}
|
|
|
|
void CInstanceBase::NEW_LookAtDestInstance(CInstanceBase& rkInstDst)
|
|
{
|
|
m_GraphicThingInstance.LookAt(&rkInstDst.m_GraphicThingInstance);
|
|
// Tracenf("LookAt %f", m_GraphicThingInstance.GetTargetRotation());
|
|
}
|
|
|
|
float CInstanceBase::GetRotation()
|
|
{
|
|
return m_GraphicThingInstance.GetRotation();
|
|
}
|
|
|
|
float CInstanceBase::GetAdvancingRotation()
|
|
{
|
|
return m_GraphicThingInstance.GetAdvancingRotation();
|
|
}
|
|
|
|
void CInstanceBase::SetDirection(int dir)
|
|
{
|
|
float fDegree = GetDegreeFromDirection(dir);
|
|
SetRotation(fDegree);
|
|
SetAdvancingRotation(fDegree);
|
|
}
|
|
|
|
void CInstanceBase::BlendDirection(int dir, float blendTime)
|
|
{
|
|
m_GraphicThingInstance.BlendRotation(GetDegreeFromDirection(dir), blendTime);
|
|
}
|
|
|
|
float CInstanceBase::GetDegreeFromDirection(int dir)
|
|
{
|
|
if (dir < 0)
|
|
return 0.0f;
|
|
|
|
if (dir >= DIR_MAX_NUM)
|
|
return 0.0f;
|
|
|
|
static float s_dirRot[DIR_MAX_NUM]=
|
|
{
|
|
+45.0f * 4,
|
|
+45.0f * 3,
|
|
+45.0f * 2,
|
|
+45.0f,
|
|
+0.0f,
|
|
360.0f-45.0f,
|
|
360.0f-45.0f * 2,
|
|
360.0f-45.0f * 3,
|
|
};
|
|
|
|
return s_dirRot[dir];
|
|
}
|