Files
Sun1602/Client/GameClient/State/StateMapIdle.cpp
T
2022-10-26 12:25:11 +08:00

85 lines
2.0 KiB
C++

//------------------------------------------------------------------------------
// StateSpawn.cpp
// (C) 2005 Webzen Sunstudio
//------------------------------------------------------------------------------
#include "SunClientPrecompiledHeader.h"
#include "statemapidle.h"
#include "MapObject.h"
//------------------------------------------------------------------------------
/**
*/
StateMapIdle::StateMapIdle(void)
{
}
//------------------------------------------------------------------------------
/**
*/
StateMapIdle::~StateMapIdle(void)
{
}
//------------------------------------------------------------------------------
/**
*/
BOOL StateMapIdle::CanTransite(Object* pOwner, DWORD CurTime, StateBase* pToTransiteState)
{
return TRUE;
}
//------------------------------------------------------------------------------
/**
*/
STATECHANGE::TYPE StateMapIdle::OnStart(Object* pOwner, DWORD CurTime)
{
MapObject* pMapObject = static_cast<MapObject *>(pOwner);
// 애니메이션이 없는 녀석들이 있다는 의미
if( pMapObject->GetAnimationCount() == 0 )
{
return STATECHANGE::SUCCESS;
}
WzID animationID = pMapObject->GetCurrentIdleAnimation();
WzAnimationInfo* pwzAniInfo = pMapObject->GetAnimationInfo(animationID);
if (pwzAniInfo && animationID == pwzAniInfo->m_wiAction)
{
pMapObject->SetAnimation( animationID, TRUE );
}
else
{
pMapObject->SetAnimation((WzID)0,FALSE);
}
return STATECHANGE::SUCCESS;
}
//------------------------------------------------------------------------------
/**
*/
STATEPROCESS::TYPE StateMapIdle::OnProcess(Object* pOwner, DWORD CurTime,DWORD dwTick)
{
MapObject * pMapObject = static_cast<MapObject *>(pOwner);
pMapObject->ProcessAnimation(dwTick);
return STATEPROCESS::SUSPEND;
}
//------------------------------------------------------------------------------
/**
*/
STATECHANGE::TYPE StateMapIdle::OnEnd(Object* pOwner, DWORD CurTime)
{
MapObject * pMapObject = static_cast<MapObject *>(pOwner);
return STATECHANGE::SUCCESS;
}