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 + -
显示快捷键?