📄 subdoctrine.cpp
字号:
#include "stdafx.h"
#include "SubDoctrine.h"
CSubDoctrine::CSubDoctrine(string strName) : CStateObject(strName)
{
m_pDoctrine = NULL;
}
CSubDoctrine::~CSubDoctrine(void)
{
if (m_pDoctrine)
{
delete m_pDoctrine;
}
}
void CSubDoctrine::Init(ENTITY_PTR* pEntity)
{
CStateObject::Init(pEntity);
if (m_pDoctrine)
{
m_pDoctrine->Init(pEntity);
}
else
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CSubDoctrine", "Init", "m_pDoctrine");
}
}
void CSubDoctrine::tick()
{
if (m_pDoctrine)
{
m_pDoctrine->tick();
}
else
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CSubDoctrine", "Init", "m_pDoctrine");
}
}
void CSubDoctrine::OnEnter()
{
if (m_pDoctrine)
{
m_pDoctrine->Start();
}
else
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CSubDoctrine", "Init", "m_pDoctrine");
}
}
void CSubDoctrine::OnLeave()
{
//do nothing
}
void CSubDoctrine::OnMsg(EnumMsgType eumMsgType, MSG_PTR* pMsg)
{
// Forward message to sub doctrine
if (m_pDoctrine)
{
m_pDoctrine->DispatchMsg(eumMsgType, pMsg);
}
else
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CSubDoctrine", "Init", "m_pDoctrine");
}
}
void CSubDoctrine::AddActionHandlerFcn(string strHandlerName, void* pfcnHandler)
{
if (m_pDoctrine)
{
m_pDoctrine->AddActionHandlerFcn(strHandlerName.data(), pfcnHandler);
}
}
void CSubDoctrine::AddPredicateHandlerFcn(string strHandlerName, void* pfcnHandler)
{
CStateObject::AddPredicateHandlerFcn(strHandlerName, pfcnHandler);
if (m_pDoctrine)
{
m_pDoctrine->AddPredicateHandlerFcn(strHandlerName.data(), pfcnHandler);
}
else
{
CDoctrineLog::Instance().WriteLog(LOG_WARNING, "CSubDoctrine", "Init", "m_pDoctrine");
}
}
bool CSubDoctrine::IsFinalState()
{
if (m_pDoctrine)
{
return (m_pDoctrine->IsEnded() && m_bIsFinalState);
}
return CStateObject::IsFinalState();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -