📄 stateobject.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -