#pragma once #include "Singleton.h" #include "EtTrigger.h" class CScriptControl : public CSingleton { public: CScriptControl(); virtual ~CScriptControl(); static char *s_szParamTypeString[CEtTrigger::ParamTypeEnum_Amount]; struct ScriptStringStruct { std::string szStr; CEtTrigger::ParamTypeEnum Type; }; struct DefineScriptStruct { std::string szFileName; std::vector VecStringList; ScriptStringStruct *GetParamStruct( DWORD dwIndex ) { int nOffset = 0; for( DWORD i=0; i m_pVecDefineEventList; std::vector m_pVecDefineConditionList; std::vector m_pVecDefineActionList; protected: CEtTrigger::ParamTypeEnum GetParamTypeFromString( const char *szStr ); public: void RefreshDefineScript(); bool ParseScriptFromFile( const char *szFileName, std::vector &VecResult ); DWORD GetDefineEventCount() { return (DWORD)m_pVecDefineEventList.size(); } DWORD GetDefineConditionCount() { return (DWORD)m_pVecDefineConditionList.size(); } DWORD GetDefineActionCount() { return (DWORD)m_pVecDefineActionList.size(); } DefineScriptStruct *GetDefineEventStructFromIndex( DWORD dwIndex ); DefineScriptStruct *GetDefineConditionStructFromIndex( DWORD dwIndex ); DefineScriptStruct *GetDefineActionStructFromIndex( DWORD dwIndex ); DefineScriptStruct *GetDefineEventStructFromName( const char *szFileName ); DefineScriptStruct *GetDefineConditionStructFromName( const char *szFileName ); DefineScriptStruct *GetDefineActionStructFromName( const char *szFileName ); }; extern CScriptControl g_ScriptControl;