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

📄 stateobject.cpp

📁 一个模拟动作源码
💻 CPP
字号:
#include "stdafx.h"
#include "StateObject.h"

// Constructor for State
CStateObject::CStateObject(string strName)
{
	m_strName = strName;
	m_pEntity = NULL;
	m_strNextStateName = "";
	m_bIsFinalState = false;
}

// Constructor for Process
CStateObject::CStateObject(string strName, string strNextState)
{
	m_strName = strName;
	m_pEntity = NULL;
	m_strNextStateName = strNextState;
	m_bIsFinalState = false;
}

CStateObject::~CStateObject(void)
{
	for( LIST_TRANSRULE::iterator it = m_listTransRules.begin(); it != m_listTransRules.end(); ++it )
	{
		CTransRule* pTransRule = *it;
		delete pTransRule;
	}

	m_listTransRules.clear();
}

void CStateObject::Init(ENTITY_PTR* pEntity)
{
	m_pEntity = pEntity;
}

string CStateObject::CheckTransition()
{
	for( LIST_TRANSRULE::iterator it = m_listTransRules.begin(); it != m_listTransRules.end(); ++it )
	{
		CTransRule* pTransRule = *it;

		if( pTransRule->Check() )
		{
			return pTransRule->GetTargetStateName();
		}
	}

	// In the case of a Process, this will return the next state
	return m_strNextStateName;
}

void CStateObject::AddPredicateHandlerFcn(string strHandlerName, void* pfcnHandler)
{
	for( LIST_TRANSRULE::iterator it = m_listTransRules.begin(); it != m_listTransRules.end(); ++it )
	{
		CTransRule* pTransRule = *it;
		pTransRule->AddPredicateHandlerFcn(strHandlerName, pfcnHandler);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -