stateobject.h

来自「一个模拟动作源码」· C头文件 代码 · 共 41 行

H
41
字号
#pragma once
#include "TypeDefine.h"
#include "TransRule.h"

#include <list>
#include <string>
using namespace std;

class CStateObject
{
	typedef list<CTransRule*> LIST_TRANSRULE;

public:
	CStateObject(string strName);
	CStateObject(string strName, string strNextState);
	virtual ~CStateObject(void);

	virtual void Init(ENTITY_PTR* pEntity);
	virtual void tick() = 0;
	virtual void OnEnter() = 0;
	virtual void OnLeave() = 0;
	virtual void OnMsg(EnumMsgType eumMsgType, MSG_PTR* pMsg) = 0;
	virtual void AddActionHandlerFcn(string strHandlerName, void* pfcnHandler)=0;
	virtual void AddPredicateHandlerFcn(string strHandlerName, void* pfcnHandler);
	virtual string CheckTransition();
	virtual bool IsFinalState(){ return m_bIsFinalState; }

	string GetName(){ return m_strName; }

protected:
	ENTITY_PTR* GetEntityPtr(){ return m_pEntity; }

protected:
	LIST_TRANSRULE		m_listTransRules;
	string				m_strName;
	string				m_strNextStateName; // for Process
	ENTITY_PTR*			m_pEntity;
	bool				m_bIsFinalState;

};

⌨️ 快捷键说明

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