⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subdoctrine.cpp

📁 一个模拟动作源码
💻 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 + -