client/UserInterface/InstanceBaseTransform.cpp

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];
}