www.pudn.com > GameEngine_src.rar > CES_CmdPool.h


// CES_CmdPool.h: interface for the CES_CmdPool class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#ifndef CES_CmdPool_h 
#define CES_CmdPool_h 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
 
#include "EasyScript.h" 
#include "CDynamicArray.h" 
#include  
 
 
 
/////////////////////////////////////////////////////////////////////// 
//脚本的命令池,他的大小是动态的 
/////////////////////////////////////////////////////////////////////// 
class CES_CmdPool   
{ 
public: 
	CES_CmdPool(); 
	~CES_CmdPool(); 
 
	void Free(); 
	 
	void SetObj( void *obj ); 
 
	int LoadESFromMemory( char *pData, int offset );	//从内存中载入脚本 
	int LoadESFromFile( FILE *fp, int offset ); 
 
	void LoadCmdFromFile( FILE *fp, int cmdNum ); 
 
	void RunCmd( int offset, int num ); 
	void RunCmd( int offset ); 
	void RunCmdAll(); 
 
	void AddCmd( const ES_CMD &cmd );			//增加一条指令,注意不能带CHAR_PTR 
	void AddCmd( ES_CMD *CmdBuf, int CmdNum );	//增加一个缓冲的指令,不能带CHAR_PTR	 
 
	ES_CMD *GetCmdBuf() { return m_CmdArray.GetPointer(); } 
	int GetCmdNum() { return m_CmdArray.GetLength(); } 
 
	static bool LoadCmdBufFromFile( FILE *fp, int offset, ES_CMD *&pCmdBuf, int &CmdNum ); 
	static bool LoadCmdBufFromMemory( unsigned char *pData, int offset, ES_CMD *&pCmdBuf, int &CmdNum ); 
 
private: 
	void LoadCmdHelp(); 
 
private: 
	CDynamicArray	m_CmdArray;			//命令数组 
 
	char	*m_szBuf;		//字符缓冲,用于装载脚本中的字符 
	//int		m_BufSize;		//字符缓冲区的大小 
}; 
 
 
#endif