#pragma once class ScriptLogic; struct WISECLIENT_SCRIPTLOGIC_API ScriptLogicInterface { ScriptLogic* SCRIPTLOGIC; }; class ScriptLogic; class WISECLIENT_SCRIPTLOGIC_API ScriptLogicFrame { // public: // private: ScriptLogicFrame(); ~ScriptLogicFrame(); public: static VOID CreateInstance(); static VOID DestroyInstance(); static ScriptLogicFrame* GetScriptLogicFrame(); // public: VOID Init( ScriptLogicInterface* IN OUT pInterface ); public: VOID Update(); public: static ScriptLogicInterface* GetInterfaceRef(); private: ScriptLogicInterface* m_pExportedInterface; }; #include #include #include ////////////////////////////////////////////////////////////////////////// // struct ControlData { typedef STLX_MAP ATTR_DATA_VALUE_TABLE; typedef ATTR_DATA_VALUE_TABLE::iterator ATTR_DATA_VALUE_TABLE_IT; typedef STLX_HASH_MAP SECTION_DATA_TABLE; typedef SECTION_DATA_TABLE::iterator SECTION_DATA_TABLE_IT; ////////////////////////////////////////////////////////////////////////// // ControlData() : m_ReservedSection(FALSE) {} ~ControlData() {} VOID SetSectionCursor( string& nameOfSection ); VOID AlignAttribute( string& nameOfAttr, string& nameOfAttrValue ); VOID SetSectionCursor( const CHAR* nameOfSection ); VOID AlignAttribute( const CHAR* nameOfAttr, const CHAR* nameOfAttrValue ); SECTION_DATA_TABLE m_Table; BOOL m_ReservedSection; string m_Cursor; // Reserved Section Fields DWORD m_Version; }; ////////////////////////////////////////////////////////////////////////// // class WISECLIENT_SCRIPTLOGIC_API ScriptLogic { public: static const CHAR* SCRIPTLOGIC_DATAFILE; public: ScriptLogic(); ~ScriptLogic(); public: BOOL Load( BOOL bReload = FALSE ); ////////////////////////////////////////////////////////////////////////// // // [GENERAL] VERSION DWORD GetVersion(); // [ENTER_MAPCODE] MAPCODE MAPCODE GetPlayMapCode(); BOOL IsAcceptPlay( CHAR* pszAttribute ); ////////////////////////////////////////////////////////////////////////// // public: BOOL Find( const CHAR* nameOfSection ); BOOL Find( string& nameOfSection ); BOOL GetData( const CHAR* nameOfSection, const CHAR* nameOfAttr, CHAR*& OUT rValueOfAttr ); BOOL GetData( string& nameOfSection, string& nameOfAttr, string& OUT rValueOfAttr ); private: static INT __ParseInfoSection( PVOID pPassingPtr, SDAttrTag tagName ); static BOOL __ParseInfoSectionData( PVOID pPassingPtr, SDAttrValueName tagValueName, SDAttrValue tagValue ); private: ControlData* m_pControlData; };