92 lines
2.7 KiB
C++
92 lines
2.7 KiB
C++
#pragma once
|
|
|
|
class ScriptLogic;
|
|
struct WISECLIENT_SCRIPTLOGIC_API ScriptLogicInterface
|
|
{
|
|
ScriptLogic* SCRIPTLOGIC;
|
|
};
|
|
|
|
class ScriptLogic;
|
|
|
|
class WISECLIENT_SCRIPTLOGIC_API ScriptLogicFrame
|
|
{
|
|
// <TYPE DEFINTION>
|
|
public:
|
|
// <CONSTRUCTOR><DESTRUCTOR>
|
|
private: ScriptLogicFrame();
|
|
~ScriptLogicFrame();
|
|
public: static VOID CreateInstance();
|
|
static VOID DestroyInstance();
|
|
static ScriptLogicFrame* GetScriptLogicFrame();
|
|
|
|
// <METHODs>
|
|
public: VOID Init( ScriptLogicInterface* IN OUT pInterface );
|
|
public: VOID Update();
|
|
|
|
public: static ScriptLogicInterface* GetInterfaceRef();
|
|
private: ScriptLogicInterface* m_pExportedInterface;
|
|
};
|
|
|
|
|
|
#include <ScriptDataLoader.h>
|
|
|
|
#include <hash_map>
|
|
#include <string>
|
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
struct ControlData
|
|
{
|
|
typedef STLX_MAP<string, string> ATTR_DATA_VALUE_TABLE;
|
|
typedef ATTR_DATA_VALUE_TABLE::iterator ATTR_DATA_VALUE_TABLE_IT;
|
|
|
|
typedef STLX_HASH_MAP<string, ATTR_DATA_VALUE_TABLE> 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;
|
|
};
|
|
|