DragonNest/Common/Lua/LuaDelegate.h

88 lines
2.2 KiB
C
Raw Permalink Normal View History

#pragma once
#include <windows.h>
#include <string>
using namespace std;
extern "C"
{
#include "Lua.h"
#include "LuaLib.h"
#include "lauxlib.h"
};
#define LUA_GLUE extern "C" int
extern "C"
{
typedef int (*LuaFunctionType)(struct lua_State* pLuaState);
};
// <20>̱<EFBFBD><CCB1><EFBFBD> <20><><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD>~
#define LUA_DELEGATE LuaDelegate_Singleton()
//--------------------------------------------------------------------------//
// Class Name: CLuaDelegate
//
// Author : <20><><EFBFBD>ѱ<EFBFBD>
//
// Desc: <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD> <20><EFBFBD><EBB8AE>~~
//--------------------------------------------------------------------------//
class CLuaDelegate
{
private:
lua_State* m_pLuaState;
void (*m_pErrorHandler)( const char* pError );
// <20>̱<EFBFBD><CCB1><EFBFBD><EFBFBD>̴<EFBFBD>.
CLuaDelegate(void);
// <20>ؽ<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ã<><C3A3> <20><><EFBFBD><20><><EFBFBD>̳ʸ<CCB3> <20><><EFBFBD><EFBFBD>(lub)<29><> ã<>ƺ<EFBFBD><C6BA><EFBFBD>.
void _ConvertProperFileExt( IN OUT string& strFileName );
public:
~CLuaDelegate(void);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
//#if defined (_DEBUG) | (DEBUG)
#if defined (_DEBUG)
void StartDebugConsole( HINSTANCE hInst );
#endif
bool RunScript( const char* pFileName );
bool RunString( const char* pCommand );
const char* GetErrorString( void );
bool AddFunction( const char* pFunctionName, LuaFunctionType pFunc );
const char* GetStringArgument( int iNum, const char* pDefault = NULL );
double GetNumberArgument( int iNum, double dDefault = 0.0 );
void PushString( const char* pString );
void PushNumber( double dValue );
// <20>۷ι<DBB7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double GetNumber( const char* pVarName );
const char* GetString( const char* pVarName );
// <20>۷ι<DBB7> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
void SetNumber( const char* pVarName, double dNumber );
void SetString( const char* pVarName, const char* pString );
// <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
int GetTable( const char* pTableName );
// <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> Ű&<26><> <20><><EFBFBD><20>ִ´<D6B4>.
void AddToTable( int iTableIndex, const char* pStrKey, const char* pStrValue );
void AddToTable( int iTableIndex, const char* pStrKey, lua_Number NumericValue );
// <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Top <20><> <20>ִٰ<D6B4> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
void GetField( const char* pStrKey, /*IN OUT*/ string& strValue );
lua_Number GetField( const char* pStrKey );
void SetErrorHandler( void(*pErrorHandler)(const char* pError) );
lua_State* GetLuaState( void );
friend CLuaDelegate& LuaDelegate_Singleton( void );
};