Polyphase Game Engine
Loading...
Searching...
No Matches
ScriptMacros.h File Reference
#include "Utilities.h"
#include "LuaBindings/LuaTypeCheck.h"
#include "ScriptAutoReg.h"
#include "ScriptFunc.h"

Go to the source code of this file.

Macros

#define SF_CHECK_NODE(L, arg)   CheckNodeLuaType(L, arg, "Node", "cfNode")
 
#define SF_CHECK_ASSET(L, Arg)   CheckAssetLuaType<Asset>(L, Arg, "Asset", "cfAsset")
 
#define SF_CHECK_OBJECT(L, Arg)   CheckObjectLuaType(L, Arg)
 
#define SF_CHECK_NODE_OR_NIL(L, arg)   CheckNodeOrNilLuaType(L, arg, "Node", "cfNode")
 
#define SF_CHECK_ASSET_OR_NIL(L, Arg)   CheckAssetOrNilLuaType<Asset>(L, Arg, "Asset", "cfAsset")
 
#define SF_CHECK_OBJECT_OR_NIL(L, Arg)   CheckObjectOrNilLuaType(L, Arg)
 
#define SpNode(idx)   SF_CHECK_NODE(L, idx)
 
#define SpAsset(idx)   SF_CHECK_ASSET(L, idx)
 
#define SpNodeOrNil(idx)   SF_CHECK_NODE_OR_NIL(L, idx)
 
#define SpAssetOrNil(idx)   SF_CHECK_ASSET_OR_NIL(L, idx)
 
#define SpVector(idx)   LuaObjectToDatum(L, idx)
 
#define SpInt(idx)   lua_tointeger(L, idx)
 
#define SpIndex(idx)   (lua_tointeger(L, idx) - 1)
 
#define SpFloat(idx)   lua_tonumber(L, idx)
 
#define SpString(idx)   lua_tostring(L, idx)
 
#define SpBool(idx)   lua_toboolean(L, idx)
 
#define SpFunction(idx)   ScriptFunc(L, idx)
 
#define SrReturn
 
#define SrNode   (Node*)
 
#define SrAsset   (Asset*)
 
#define SrVector
 
#define SrInt   (int32_t)
 
#define SrIndex   1 +
 
#define SrFloat
 
#define SrString
 
#define SrBool
 
#define SrFunction
 
#define SCRIPT_FUNC_X_1(ClassName, FuncName, P0)
 
#define SCRIPT_FUNC_X_2(ClassName, FuncName, P0, P1)
 
#define SCRIPT_FUNC_X_3(ClassName, FuncName, P0, P1, P2)
 
#define SCRIPT_FUNC_X_4(ClassName, FuncName, P0, P1, P2, P3)
 
#define SCRIPT_FUNC_X_5(ClassName, FuncName, P0, P1, P2, P3, P4)
 
#define SCRIPT_FUNC_X_R(ClassName, FuncName, RC)
 
#define SCRIPT_FUNC_X_R_1(ClassName, FuncName, RC, P0)
 
#define SCRIPT_FUNC_X_R_2(ClassName, FuncName, RC, P0, P1)
 
#define SCRIPT_FUNC_X_R_3(ClassName, FuncName, RC, P0, P1, P2)
 
#define SCRIPT_FUNC_X_R_4(ClassName, FuncName, RC, P0, P1, P2, P3)
 
#define GLOBAL_SCRIPT_FUNC_X_1(TableName, FuncName, P0)
 
#define GLOBAL_SCRIPT_FUNC_X_2(TableName, FuncName, P0, P1)
 
#define GLOBAL_SCRIPT_FUNC_X_3(TableName, FuncName, P0, P1, P2)
 
#define GLOBAL_SCRIPT_FUNC_X_4(TableName, FuncName, P0, P1, P2, P3)
 
#define GLOBAL_SCRIPT_FUNC_X_R(TableName, FuncName, RC)
 
#define GLOBAL_SCRIPT_FUNC_X_R_1(TableName, FuncName, RC, P0)
 
#define GLOBAL_SCRIPT_FUNC_X_R_2(TableName, FuncName, RC, P0, P1)
 
#define GLOBAL_SCRIPT_FUNC_X_R_3(TableName, FuncName, RC, P0, P1, P2)
 
#define GLOBAL_SCRIPT_FUNC_X_R_4(TableName, FuncName, RC, P0, P1, P2, P3)
 
#define SCRIPT_FUNC(ClassName, FuncName)
 
#define SCRIPT_FUNC_1(ClassName, FuncName)
 
#define SCRIPT_FUNC_2(ClassName, FuncName)
 
#define SCRIPT_FUNC_3(ClassName, FuncName)
 
#define SCRIPT_FUNC_4(ClassName, FuncName)
 
#define SCRIPT_FUNC_5(ClassName, FuncName)
 
#define SCRIPT_FUNC_6(ClassName, FuncName)
 
#define SCRIPT_FUNC_7(ClassName, FuncName)
 
#define SCRIPT_FUNC_8(ClassName, FuncName)
 
#define SCRIPT_FUNC_R(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_1(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_2(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_3(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_4(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_5(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_6(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_7(ClassName, FuncName)
 
#define SCRIPT_FUNC_R_8(ClassName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_1(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_2(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_3(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_4(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_5(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_6(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_7(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_8(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_1(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_2(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_3(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_4(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_5(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_6(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_7(TableName, FuncName)
 
#define GLOBAL_SCRIPT_FUNC_R_8(TableName, FuncName)
 
#define OSF(ClassName, FuncName)   SCRIPT_FUNC(ClassName, FuncName)
 
#define OSF_1(ClassName, FuncName)   SCRIPT_FUNC_1(ClassName, FuncName)
 
#define OSF_2(ClassName, FuncName)   SCRIPT_FUNC_2(ClassName, FuncName)
 
#define OSF_3(ClassName, FuncName)   SCRIPT_FUNC_3(ClassName, FuncName)
 
#define OSF_4(ClassName, FuncName)   SCRIPT_FUNC_4(ClassName, FuncName)
 
#define OSF_5(ClassName, FuncName)   SCRIPT_FUNC_5(ClassName, FuncName)
 
#define OSF_6(ClassName, FuncName)   SCRIPT_FUNC_6(ClassName, FuncName)
 
#define OSF_7(ClassName, FuncName)   SCRIPT_FUNC_7(ClassName, FuncName)
 
#define OSF_8(ClassName, FuncName)   SCRIPT_FUNC_8(ClassName, FuncName)
 
#define OSF_R(ClassName, FuncName)   SCRIPT_FUNC_R(ClassName, FuncName)
 
#define OSF_R_1(ClassName, FuncName)   SCRIPT_FUNC_R_1(ClassName, FuncName)
 
#define OSF_R_2(ClassName, FuncName)   SCRIPT_FUNC_R_2(ClassName, FuncName)
 
#define OSF_R_3(ClassName, FuncName)   SCRIPT_FUNC_R_3(ClassName, FuncName)
 
#define OSF_R_4(ClassName, FuncName)   SCRIPT_FUNC_R_4(ClassName, FuncName)
 
#define OSF_R_5(ClassName, FuncName)   SCRIPT_FUNC_R_5(ClassName, FuncName)
 
#define OSF_R_6(ClassName, FuncName)   SCRIPT_FUNC_R_6(ClassName, FuncName)
 
#define OSF_R_7(ClassName, FuncName)   SCRIPT_FUNC_R_7(ClassName, FuncName)
 
#define OSF_R_8(ClassName, FuncName)   SCRIPT_FUNC_R_8(ClassName, FuncName)
 
#define TSF(TableName, FuncName)   GLOBAL_SCRIPT_FUNC(TableName, FuncName)
 
#define TSF_1(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_1(TableName, FuncName)
 
#define TSF_2(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_2(TableName, FuncName)
 
#define TSF_3(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_3(TableName, FuncName)
 
#define TSF_4(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_4(TableName, FuncName)
 
#define TSF_5(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_5(TableName, FuncName)
 
#define TSF_6(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_6(TableName, FuncName)
 
#define TSF_7(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_7(TableName, FuncName)
 
#define TSF_8(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_8(TableName, FuncName)
 
#define TSF_R(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R(TableName, FuncName)
 
#define TSF_R_1(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_1(TableName, FuncName)
 
#define TSF_R_2(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_2(TableName, FuncName)
 
#define TSF_R_3(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_3(TableName, FuncName)
 
#define TSF_R_4(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_4(TableName, FuncName)
 
#define TSF_R_5(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_5(TableName, FuncName)
 
#define TSF_R_6(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_6(TableName, FuncName)
 
#define TSF_R_7(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_7(TableName, FuncName)
 
#define TSF_R_8(TableName, FuncName)   GLOBAL_SCRIPT_FUNC_R_8(TableName, FuncName)
 
#define GSF(FuncName)   GLOBAL_SCRIPT_FUNC("", FuncName)
 
#define GSF_1(FuncName)   GLOBAL_SCRIPT_FUNC_1("", FuncName)
 
#define GSF_2(FuncName)   GLOBAL_SCRIPT_FUNC_2("", FuncName)
 
#define GSF_3(FuncName)   GLOBAL_SCRIPT_FUNC_3("", FuncName)
 
#define GSF_4(FuncName)   GLOBAL_SCRIPT_FUNC_4("", FuncName)
 
#define GSF_5(FuncName)   GLOBAL_SCRIPT_FUNC_5("", FuncName)
 
#define GSF_6(FuncName)   GLOBAL_SCRIPT_FUNC_6("", FuncName)
 
#define GSF_7(FuncName)   GLOBAL_SCRIPT_FUNC_7("", FuncName)
 
#define GSF_8(FuncName)   GLOBAL_SCRIPT_FUNC_8("", FuncName)
 
#define GSF_R(FuncName)   GLOBAL_SCRIPT_FUNC_R("", FuncName)
 
#define GSF_R_1(FuncName)   GLOBAL_SCRIPT_FUNC_R_1("", FuncName)
 
#define GSF_R_2(FuncName)   GLOBAL_SCRIPT_FUNC_R_2("", FuncName)
 
#define GSF_R_3(FuncName)   GLOBAL_SCRIPT_FUNC_R_3("", FuncName)
 
#define GSF_R_4(FuncName)   GLOBAL_SCRIPT_FUNC_R_4("", FuncName)
 
#define GSF_R_5(FuncName)   GLOBAL_SCRIPT_FUNC_R_5("", FuncName)
 
#define GSF_R_6(FuncName)   GLOBAL_SCRIPT_FUNC_R_6("", FuncName)
 
#define GSF_R_7(FuncName)   GLOBAL_SCRIPT_FUNC_R_7("", FuncName)
 
#define GSF_R_8(FuncName)   GLOBAL_SCRIPT_FUNC_R_8("", FuncName)
 
#define OSFX_1(ClassName, FuncName, P0)   SCRIPT_FUNC_X_1(ClassName, FuncName, P0)
 
#define OSFX_2(ClassName, FuncName, P0, P1)   SCRIPT_FUNC_X_2(ClassName, FuncName, P0, P1)
 
#define OSFX_3(ClassName, FuncName, P0, P1, P2)   SCRIPT_FUNC_X_3(ClassName, FuncName, P0, P1, P2)
 
#define OSFX_4(ClassName, FuncName, P0, P1, P2, P3)   SCRIPT_FUNC_X_4(ClassName, FuncName, P0, P1, P2, P3)
 
#define OSFX_5(ClassName, FuncName, P0, P1, P2, P3, P4)   SCRIPT_FUNC_X_5(ClassName, FuncName, P0, P1, P2, P3, P4)
 
#define OSFX_R(ClassName, FuncName, RC)   SCRIPT_FUNC_X_R(ClassName, FuncName, RC)
 
#define OSFX_R_1(ClassName, FuncName, RC, P0)   SCRIPT_FUNC_X_R_1(ClassName, FuncName, RC, P0)
 
#define OSFX_R_2(ClassName, FuncName, RC, P0, P1)   SCRIPT_FUNC_X_R_2(ClassName, FuncName, RC, P0, P1)
 
#define OSFX_R_3(ClassName, FuncName, RC, P0, P1, P2)   SCRIPT_FUNC_X_R_3(ClassName, FuncName, RC, P0, P1, P2)
 
#define OSFX_R_4(ClassName, FuncName, RC, P0, P1, P2, P3)   SCRIPT_FUNC_X_R_4(ClassName, FuncName, RC, P0, P1, P2, P3)
 
#define TSFX_1(TableName, FuncName, P0)   GLOBAL_SCRIPT_FUNC_X_1(TableName, FuncName, P0)
 
#define TSFX_2(TableName, FuncName, P0, P1)   GLOBAL_SCRIPT_FUNC_X_2(TableName, FuncName, P0, P1)
 
#define TSFX_3(TableName, FuncName, P0, P1, P2)   GLOBAL_SCRIPT_FUNC_X_3(TableName, FuncName, P0, P1, P2)
 
#define TSFX_4(TableName, FuncName, P0, P1, P2, P3)   GLOBAL_SCRIPT_FUNC_X_4(TableName, FuncName, P0, P1, P2, P3)
 
#define TSFX_R(TableName, FuncName, RC)   GLOBAL_SCRIPT_FUNC_X_R(TableName, FuncName, RC)
 
#define TSFX_R_1(TableName, FuncName, RC, P0)   GLOBAL_SCRIPT_FUNC_X_R_1(TableName, FuncName, RC, P0)
 
#define TSFX_R_2(TableName, FuncName, RC, P0, P1)   GLOBAL_SCRIPT_FUNC_X_R_2(TableName, FuncName, RC, P0, P1)
 
#define TSFX_R_3(TableName, FuncName, RC, P0, P1, P2)   GLOBAL_SCRIPT_FUNC_X_R_3(TableName, FuncName, RC, P0, P1, P2)
 
#define TSFX_R_4(TableName, FuncName, RC, P0, P1, P2, P3)   GLOBAL_SCRIPT_FUNC_X_R_4(TableName, FuncName, RC, P0, P1, P2, P3)
 
#define GSFX_1(FuncName, P0)   GLOBAL_SCRIPT_FUNC_X_1("", FuncName, P0)
 
#define GSFX_2(FuncName, P0, P1)   GLOBAL_SCRIPT_FUNC_X_2("", FuncName, P0, P1)
 
#define GSFX_3(FuncName, P0, P1, P2)   GLOBAL_SCRIPT_FUNC_X_3("", FuncName, P0, P1, P2)
 
#define GSFX_4(FuncName, P0, P1, P2, P3)   GLOBAL_SCRIPT_FUNC_X_4("", FuncName, P0, P1, P2, P3)
 
#define GSFX_R(FuncName, RC)   GLOBAL_SCRIPT_FUNC_X_R("", FuncName, RC)
 
#define GSFX_R_1(FuncName, RC, P0)   GLOBAL_SCRIPT_FUNC_X_R_1("", FuncName, RC, P0)
 
#define GSFX_R_2(FuncName, RC, P0, P1)   GLOBAL_SCRIPT_FUNC_X_R_2("", FuncName, RC, P0, P1)
 
#define GSFX_R_3(FuncName, RC, P0, P1, P2)   GLOBAL_SCRIPT_FUNC_X_R_3("", FuncName, RC, P0, P1, P2)
 
#define GSFX_R_4(FuncName, RC, P0, P1, P2, P3)   GLOBAL_SCRIPT_FUNC_X_R_4("", FuncName, RC, P0, P1, P2, P3)
 

Macro Definition Documentation

◆ GLOBAL_SCRIPT_FUNC

#define GLOBAL_SCRIPT_FUNC (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
FuncName(); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);
std::vector< AutoRegData > & GetGlobalAutoRegArray()
Definition ScriptAutoReg.cpp:5
Definition ScriptAutoReg.h:60

◆ GLOBAL_SCRIPT_FUNC_1

#define GLOBAL_SCRIPT_FUNC_1 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
FuncName(param0); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);
Datum LuaObjectToDatum(lua_State *L, int idx)
Definition Utilities.cpp:1071
Definition Datum.h:164

◆ GLOBAL_SCRIPT_FUNC_2

#define GLOBAL_SCRIPT_FUNC_2 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
FuncName(param0, param1); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_3

#define GLOBAL_SCRIPT_FUNC_3 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
FuncName(param0, param1, param2); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_4

#define GLOBAL_SCRIPT_FUNC_4 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
FuncName(param0, param1, param2, param3); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_5

#define GLOBAL_SCRIPT_FUNC_5 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
FuncName(param0, param1, param2, param3, param4); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_6

#define GLOBAL_SCRIPT_FUNC_6 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
Datum param5; LuaObjectToDatum(L, 6, param5); \
FuncName(param0, param1, param2, param3, param4, param5); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_7

#define GLOBAL_SCRIPT_FUNC_7 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
Datum param5; LuaObjectToDatum(L, 6, param5); \
Datum param6; LuaObjectToDatum(L, 7, param6); \
FuncName(param0, param1, param2, param3, param4, param5, param6); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_8

#define GLOBAL_SCRIPT_FUNC_8 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
Datum param5; LuaObjectToDatum(L, 6, param5); \
Datum param6; LuaObjectToDatum(L, 7, param6); \
Datum param7; LuaObjectToDatum(L, 8, param7); \
FuncName(param0, param1, param2, param3, param4, param5, param6, param7); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R

#define GLOBAL_SCRIPT_FUNC_R (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum ret = FuncName(); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_1

#define GLOBAL_SCRIPT_FUNC_R_1 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum ret = FuncName(param0); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_2

#define GLOBAL_SCRIPT_FUNC_R_2 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum ret = FuncName(param0, param1); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_3

#define GLOBAL_SCRIPT_FUNC_R_3 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum ret = FuncName(param0, param1, param2); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_4

#define GLOBAL_SCRIPT_FUNC_R_4 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum ret = FuncName(param0, param1, param2, param3); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_5

#define GLOBAL_SCRIPT_FUNC_R_5 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
Datum ret = FuncName(param0, param1, param2, param3, param4); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_6

#define GLOBAL_SCRIPT_FUNC_R_6 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
Datum param5; LuaObjectToDatum(L, 6, param5); \
Datum ret = FuncName(param0, param1, param2, param3, param4, param5); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_7

#define GLOBAL_SCRIPT_FUNC_R_7 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
Datum param5; LuaObjectToDatum(L, 6, param5); \
Datum param6; LuaObjectToDatum(L, 7, param6); \
Datum ret = FuncName(param0, param1, param2, param3, param4, param5, param6); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_R_8

#define GLOBAL_SCRIPT_FUNC_R_8 (   TableName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum param0; LuaObjectToDatum(L, 1, param0); \
Datum param1; LuaObjectToDatum(L, 2, param1); \
Datum param2; LuaObjectToDatum(L, 3, param2); \
Datum param3; LuaObjectToDatum(L, 4, param3); \
Datum param4; LuaObjectToDatum(L, 5, param4); \
Datum param5; LuaObjectToDatum(L, 6, param5); \
Datum param6; LuaObjectToDatum(L, 7, param6); \
Datum param7; LuaObjectToDatum(L, 8, param7); \
Datum ret = FuncName(param0, param1, param2, param3, param4, param5, param6, param7); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_1

#define GLOBAL_SCRIPT_FUNC_X_1 (   TableName,
  FuncName,
  P0 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
FuncName(P0(1)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_2

#define GLOBAL_SCRIPT_FUNC_X_2 (   TableName,
  FuncName,
  P0,
  P1 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
FuncName(P0(1), P1(2)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_3

#define GLOBAL_SCRIPT_FUNC_X_3 (   TableName,
  FuncName,
  P0,
  P1,
  P2 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
FuncName(P0(1), P1(2), P2(3)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_4

#define GLOBAL_SCRIPT_FUNC_X_4 (   TableName,
  FuncName,
  P0,
  P1,
  P2,
  P3 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
FuncName(P0(1), P1(2), P2(3), P3(4)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_R

#define GLOBAL_SCRIPT_FUNC_X_R (   TableName,
  FuncName,
  RC 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum ret = RC FuncName(); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_R_1

#define GLOBAL_SCRIPT_FUNC_X_R_1 (   TableName,
  FuncName,
  RC,
  P0 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum ret = RC FuncName(P0(1)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_R_2

#define GLOBAL_SCRIPT_FUNC_X_R_2 (   TableName,
  FuncName,
  RC,
  P0,
  P1 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum ret = RC FuncName(P0(1), P1(2)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_R_3

#define GLOBAL_SCRIPT_FUNC_X_R_3 (   TableName,
  FuncName,
  RC,
  P0,
  P1,
  P2 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum ret = RC FuncName(P0(1), P1(2), P2(3)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GLOBAL_SCRIPT_FUNC_X_R_4

#define GLOBAL_SCRIPT_FUNC_X_R_4 (   TableName,
  FuncName,
  RC,
  P0,
  P1,
  P2,
  P3 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
Datum ret = RC FuncName(P0(1), P1(2), P2(3), P3(4)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(GetGlobalAutoRegArray(), TableName, #FuncName, ScriptFunc_##FuncName);

◆ GSF

#define GSF (   FuncName)    GLOBAL_SCRIPT_FUNC("", FuncName)

◆ GSF_1

#define GSF_1 (   FuncName)    GLOBAL_SCRIPT_FUNC_1("", FuncName)

◆ GSF_2

#define GSF_2 (   FuncName)    GLOBAL_SCRIPT_FUNC_2("", FuncName)

◆ GSF_3

#define GSF_3 (   FuncName)    GLOBAL_SCRIPT_FUNC_3("", FuncName)

◆ GSF_4

#define GSF_4 (   FuncName)    GLOBAL_SCRIPT_FUNC_4("", FuncName)

◆ GSF_5

#define GSF_5 (   FuncName)    GLOBAL_SCRIPT_FUNC_5("", FuncName)

◆ GSF_6

#define GSF_6 (   FuncName)    GLOBAL_SCRIPT_FUNC_6("", FuncName)

◆ GSF_7

#define GSF_7 (   FuncName)    GLOBAL_SCRIPT_FUNC_7("", FuncName)

◆ GSF_8

#define GSF_8 (   FuncName)    GLOBAL_SCRIPT_FUNC_8("", FuncName)

◆ GSF_R

#define GSF_R (   FuncName)    GLOBAL_SCRIPT_FUNC_R("", FuncName)

◆ GSF_R_1

#define GSF_R_1 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_1("", FuncName)

◆ GSF_R_2

#define GSF_R_2 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_2("", FuncName)

◆ GSF_R_3

#define GSF_R_3 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_3("", FuncName)

◆ GSF_R_4

#define GSF_R_4 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_4("", FuncName)

◆ GSF_R_5

#define GSF_R_5 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_5("", FuncName)

◆ GSF_R_6

#define GSF_R_6 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_6("", FuncName)

◆ GSF_R_7

#define GSF_R_7 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_7("", FuncName)

◆ GSF_R_8

#define GSF_R_8 (   FuncName)    GLOBAL_SCRIPT_FUNC_R_8("", FuncName)

◆ GSFX_1

#define GSFX_1 (   FuncName,
  P0 
)    GLOBAL_SCRIPT_FUNC_X_1("", FuncName, P0)

◆ GSFX_2

#define GSFX_2 (   FuncName,
  P0,
  P1 
)    GLOBAL_SCRIPT_FUNC_X_2("", FuncName, P0, P1)

◆ GSFX_3

#define GSFX_3 (   FuncName,
  P0,
  P1,
  P2 
)    GLOBAL_SCRIPT_FUNC_X_3("", FuncName, P0, P1, P2)

◆ GSFX_4

#define GSFX_4 (   FuncName,
  P0,
  P1,
  P2,
  P3 
)    GLOBAL_SCRIPT_FUNC_X_4("", FuncName, P0, P1, P2, P3)

◆ GSFX_R

#define GSFX_R (   FuncName,
  RC 
)    GLOBAL_SCRIPT_FUNC_X_R("", FuncName, RC)

◆ GSFX_R_1

#define GSFX_R_1 (   FuncName,
  RC,
  P0 
)    GLOBAL_SCRIPT_FUNC_X_R_1("", FuncName, RC, P0)

◆ GSFX_R_2

#define GSFX_R_2 (   FuncName,
  RC,
  P0,
  P1 
)    GLOBAL_SCRIPT_FUNC_X_R_2("", FuncName, RC, P0, P1)

◆ GSFX_R_3

#define GSFX_R_3 (   FuncName,
  RC,
  P0,
  P1,
  P2 
)    GLOBAL_SCRIPT_FUNC_X_R_3("", FuncName, RC, P0, P1, P2)

◆ GSFX_R_4

#define GSFX_R_4 (   FuncName,
  RC,
  P0,
  P1,
  P2,
  P3 
)    GLOBAL_SCRIPT_FUNC_X_R_4("", FuncName, RC, P0, P1, P2, P3)

◆ OSF

#define OSF (   ClassName,
  FuncName 
)    SCRIPT_FUNC(ClassName, FuncName)

◆ OSF_1

#define OSF_1 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_1(ClassName, FuncName)

◆ OSF_2

#define OSF_2 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_2(ClassName, FuncName)

◆ OSF_3

#define OSF_3 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_3(ClassName, FuncName)

◆ OSF_4

#define OSF_4 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_4(ClassName, FuncName)

◆ OSF_5

#define OSF_5 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_5(ClassName, FuncName)

◆ OSF_6

#define OSF_6 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_6(ClassName, FuncName)

◆ OSF_7

#define OSF_7 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_7(ClassName, FuncName)

◆ OSF_8

#define OSF_8 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_8(ClassName, FuncName)

◆ OSF_R

#define OSF_R (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R(ClassName, FuncName)

◆ OSF_R_1

#define OSF_R_1 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_1(ClassName, FuncName)

◆ OSF_R_2

#define OSF_R_2 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_2(ClassName, FuncName)

◆ OSF_R_3

#define OSF_R_3 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_3(ClassName, FuncName)

◆ OSF_R_4

#define OSF_R_4 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_4(ClassName, FuncName)

◆ OSF_R_5

#define OSF_R_5 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_5(ClassName, FuncName)

◆ OSF_R_6

#define OSF_R_6 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_6(ClassName, FuncName)

◆ OSF_R_7

#define OSF_R_7 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_7(ClassName, FuncName)

◆ OSF_R_8

#define OSF_R_8 (   ClassName,
  FuncName 
)    SCRIPT_FUNC_R_8(ClassName, FuncName)

◆ OSFX_1

#define OSFX_1 (   ClassName,
  FuncName,
  P0 
)    SCRIPT_FUNC_X_1(ClassName, FuncName, P0)

◆ OSFX_2

#define OSFX_2 (   ClassName,
  FuncName,
  P0,
  P1 
)    SCRIPT_FUNC_X_2(ClassName, FuncName, P0, P1)

◆ OSFX_3

#define OSFX_3 (   ClassName,
  FuncName,
  P0,
  P1,
  P2 
)    SCRIPT_FUNC_X_3(ClassName, FuncName, P0, P1, P2)

◆ OSFX_4

#define OSFX_4 (   ClassName,
  FuncName,
  P0,
  P1,
  P2,
  P3 
)    SCRIPT_FUNC_X_4(ClassName, FuncName, P0, P1, P2, P3)

◆ OSFX_5

#define OSFX_5 (   ClassName,
  FuncName,
  P0,
  P1,
  P2,
  P3,
  P4 
)    SCRIPT_FUNC_X_5(ClassName, FuncName, P0, P1, P2, P3, P4)

◆ OSFX_R

#define OSFX_R (   ClassName,
  FuncName,
  RC 
)    SCRIPT_FUNC_X_R(ClassName, FuncName, RC)

◆ OSFX_R_1

#define OSFX_R_1 (   ClassName,
  FuncName,
  RC,
  P0 
)    SCRIPT_FUNC_X_R_1(ClassName, FuncName, RC, P0)

◆ OSFX_R_2

#define OSFX_R_2 (   ClassName,
  FuncName,
  RC,
  P0,
  P1 
)    SCRIPT_FUNC_X_R_2(ClassName, FuncName, RC, P0, P1)

◆ OSFX_R_3

#define OSFX_R_3 (   ClassName,
  FuncName,
  RC,
  P0,
  P1,
  P2 
)    SCRIPT_FUNC_X_R_3(ClassName, FuncName, RC, P0, P1, P2)

◆ OSFX_R_4

#define OSFX_R_4 (   ClassName,
  FuncName,
  RC,
  P0,
  P1,
  P2,
  P3 
)    SCRIPT_FUNC_X_R_4(ClassName, FuncName, RC, P0, P1, P2, P3)

◆ SCRIPT_FUNC

#define SCRIPT_FUNC (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
object->FuncName(); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);
#define SF_CHECK_OBJECT(L, Arg)
Definition ScriptMacros.h:16

◆ SCRIPT_FUNC_1

#define SCRIPT_FUNC_1 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
object->FuncName(param0); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_2

#define SCRIPT_FUNC_2 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
object->FuncName(param0, param1); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_3

#define SCRIPT_FUNC_3 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
object->FuncName(param0, param1, param2); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_4

#define SCRIPT_FUNC_4 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
object->FuncName(param0, param1, param2, param3); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_5

#define SCRIPT_FUNC_5 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
object->FuncName(param0, param1, param2, param3, param4); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_6

#define SCRIPT_FUNC_6 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
Datum param5; LuaObjectToDatum(L, 7, param5); \
object->FuncName(param0, param1, param2, param3, param4, param5); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_7

#define SCRIPT_FUNC_7 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
Datum param5; LuaObjectToDatum(L, 7, param5); \
Datum param6; LuaObjectToDatum(L, 8, param6); \
object->FuncName(param0, param1, param2, param3, param4, param5, param6); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_8

#define SCRIPT_FUNC_8 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
Datum param5; LuaObjectToDatum(L, 7, param5); \
Datum param6; LuaObjectToDatum(L, 8, param6); \
Datum param7; LuaObjectToDatum(L, 9, param7); \
object->FuncName(param0, param1, param2, param3, param4, param5, param6, param7); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R

#define SCRIPT_FUNC_R (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum ret = object->FuncName(); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_1

#define SCRIPT_FUNC_R_1 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum ret = object->FuncName(param0); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_2

#define SCRIPT_FUNC_R_2 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum ret = object->FuncName(param0, param1); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_3

#define SCRIPT_FUNC_R_3 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum ret = object->FuncName(param0, param1, param2); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_4

#define SCRIPT_FUNC_R_4 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum ret = object->FuncName(param0, param1, param2, param3); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_5

#define SCRIPT_FUNC_R_5 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
Datum ret = object->FuncName(param0, param1, param2, param3, param4); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_6

#define SCRIPT_FUNC_R_6 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
Datum param5; LuaObjectToDatum(L, 7, param5); \
Datum ret = object->FuncName(param0, param1, param2, param3, param4, param5); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_7

#define SCRIPT_FUNC_R_7 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
Datum param5; LuaObjectToDatum(L, 7, param5); \
Datum param6; LuaObjectToDatum(L, 8, param6); \
Datum ret = object->FuncName(param0, param1, param2, param3, param4, param5, param6); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_R_8

#define SCRIPT_FUNC_R_8 (   ClassName,
  FuncName 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum param0; LuaObjectToDatum(L, 2, param0); \
Datum param1; LuaObjectToDatum(L, 3, param1); \
Datum param2; LuaObjectToDatum(L, 4, param2); \
Datum param3; LuaObjectToDatum(L, 5, param3); \
Datum param4; LuaObjectToDatum(L, 6, param4); \
Datum param5; LuaObjectToDatum(L, 7, param5); \
Datum param6; LuaObjectToDatum(L, 8, param6); \
Datum param7; LuaObjectToDatum(L, 9, param7); \
Datum ret = object->FuncName(param0, param1, param2, param3, param4, param5, param6, param7); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_1

#define SCRIPT_FUNC_X_1 (   ClassName,
  FuncName,
  P0 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
object->FuncName(P0(2)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_2

#define SCRIPT_FUNC_X_2 (   ClassName,
  FuncName,
  P0,
  P1 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
object->FuncName(P0(2), P1(3)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_3

#define SCRIPT_FUNC_X_3 (   ClassName,
  FuncName,
  P0,
  P1,
  P2 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
object->FuncName(P0(2), P1(3), P2(4)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_4

#define SCRIPT_FUNC_X_4 (   ClassName,
  FuncName,
  P0,
  P1,
  P2,
  P3 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
object->FuncName(P0(2), P1(3), P2(4), P3(5)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_5

#define SCRIPT_FUNC_X_5 (   ClassName,
  FuncName,
  P0,
  P1,
  P2,
  P3,
  P4 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
object->FuncName(P0(2), P1(3), P2(4), P3(5), P4(6)); \
return 0; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_R

#define SCRIPT_FUNC_X_R (   ClassName,
  FuncName,
  RC 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum ret = RC object->FuncName(); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_R_1

#define SCRIPT_FUNC_X_R_1 (   ClassName,
  FuncName,
  RC,
  P0 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum ret = RC object->FuncName(P0(2)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_R_2

#define SCRIPT_FUNC_X_R_2 (   ClassName,
  FuncName,
  RC,
  P0,
  P1 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum ret = RC object->FuncName(P0(2), P1(3)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_R_3

#define SCRIPT_FUNC_X_R_3 (   ClassName,
  FuncName,
  RC,
  P0,
  P1,
  P2 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum ret = RC object->FuncName(P0(2), P1(3), P2(4)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SCRIPT_FUNC_X_R_4

#define SCRIPT_FUNC_X_R_4 (   ClassName,
  FuncName,
  RC,
  P0,
  P1,
  P2,
  P3 
)
Value:
static int ScriptFunc_##FuncName(lua_State* L) \
{ \
ClassName* object = SF_CHECK_OBJECT(L, 1)->As<ClassName>(); \
Datum ret = RC object->FuncName(P0(2), P1(3), P2(4), P3(5)); \
LuaPushDatum(L, ret); \
return 1; \
} \
static ScriptFuncAutoReg AutoReg_##FuncName(sAutoRegs_##ClassName, "", #FuncName, ScriptFunc_##FuncName);

◆ SF_CHECK_ASSET

#define SF_CHECK_ASSET (   L,
  Arg 
)    CheckAssetLuaType<Asset>(L, Arg, "Asset", "cfAsset")

◆ SF_CHECK_ASSET_OR_NIL

#define SF_CHECK_ASSET_OR_NIL (   L,
  Arg 
)    CheckAssetOrNilLuaType<Asset>(L, Arg, "Asset", "cfAsset")

◆ SF_CHECK_NODE

#define SF_CHECK_NODE (   L,
  arg 
)    CheckNodeLuaType(L, arg, "Node", "cfNode")

◆ SF_CHECK_NODE_OR_NIL

#define SF_CHECK_NODE_OR_NIL (   L,
  arg 
)    CheckNodeOrNilLuaType(L, arg, "Node", "cfNode")

◆ SF_CHECK_OBJECT

#define SF_CHECK_OBJECT (   L,
  Arg 
)    CheckObjectLuaType(L, Arg)

◆ SF_CHECK_OBJECT_OR_NIL

#define SF_CHECK_OBJECT_OR_NIL (   L,
  Arg 
)    CheckObjectOrNilLuaType(L, Arg)

◆ SpAsset

#define SpAsset (   idx)    SF_CHECK_ASSET(L, idx)

◆ SpAssetOrNil

#define SpAssetOrNil (   idx)    SF_CHECK_ASSET_OR_NIL(L, idx)

◆ SpBool

#define SpBool (   idx)    lua_toboolean(L, idx)

◆ SpFloat

#define SpFloat (   idx)    lua_tonumber(L, idx)

◆ SpFunction

#define SpFunction (   idx)    ScriptFunc(L, idx)

◆ SpIndex

#define SpIndex (   idx)    (lua_tointeger(L, idx) - 1)

◆ SpInt

#define SpInt (   idx)    lua_tointeger(L, idx)

◆ SpNode

#define SpNode (   idx)    SF_CHECK_NODE(L, idx)

◆ SpNodeOrNil

#define SpNodeOrNil (   idx)    SF_CHECK_NODE_OR_NIL(L, idx)

◆ SpString

#define SpString (   idx)    lua_tostring(L, idx)

◆ SpVector

#define SpVector (   idx)    LuaObjectToDatum(L, idx)

◆ SrAsset

#define SrAsset   (Asset*)

◆ SrBool

#define SrBool

◆ SrFloat

#define SrFloat

◆ SrFunction

#define SrFunction

◆ SrIndex

#define SrIndex   1 +

◆ SrInt

#define SrInt   (int32_t)

◆ SrNode

#define SrNode   (Node*)

◆ SrReturn

#define SrReturn

◆ SrString

#define SrString

◆ SrVector

#define SrVector

◆ TSF

#define TSF (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC(TableName, FuncName)

◆ TSF_1

#define TSF_1 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_1(TableName, FuncName)

◆ TSF_2

#define TSF_2 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_2(TableName, FuncName)

◆ TSF_3

#define TSF_3 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_3(TableName, FuncName)

◆ TSF_4

#define TSF_4 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_4(TableName, FuncName)

◆ TSF_5

#define TSF_5 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_5(TableName, FuncName)

◆ TSF_6

#define TSF_6 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_6(TableName, FuncName)

◆ TSF_7

#define TSF_7 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_7(TableName, FuncName)

◆ TSF_8

#define TSF_8 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_8(TableName, FuncName)

◆ TSF_R

#define TSF_R (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R(TableName, FuncName)

◆ TSF_R_1

#define TSF_R_1 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_1(TableName, FuncName)

◆ TSF_R_2

#define TSF_R_2 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_2(TableName, FuncName)

◆ TSF_R_3

#define TSF_R_3 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_3(TableName, FuncName)

◆ TSF_R_4

#define TSF_R_4 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_4(TableName, FuncName)

◆ TSF_R_5

#define TSF_R_5 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_5(TableName, FuncName)

◆ TSF_R_6

#define TSF_R_6 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_6(TableName, FuncName)

◆ TSF_R_7

#define TSF_R_7 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_7(TableName, FuncName)

◆ TSF_R_8

#define TSF_R_8 (   TableName,
  FuncName 
)    GLOBAL_SCRIPT_FUNC_R_8(TableName, FuncName)

◆ TSFX_1

#define TSFX_1 (   TableName,
  FuncName,
  P0 
)    GLOBAL_SCRIPT_FUNC_X_1(TableName, FuncName, P0)

◆ TSFX_2

#define TSFX_2 (   TableName,
  FuncName,
  P0,
  P1 
)    GLOBAL_SCRIPT_FUNC_X_2(TableName, FuncName, P0, P1)

◆ TSFX_3

#define TSFX_3 (   TableName,
  FuncName,
  P0,
  P1,
  P2 
)    GLOBAL_SCRIPT_FUNC_X_3(TableName, FuncName, P0, P1, P2)

◆ TSFX_4

#define TSFX_4 (   TableName,
  FuncName,
  P0,
  P1,
  P2,
  P3 
)    GLOBAL_SCRIPT_FUNC_X_4(TableName, FuncName, P0, P1, P2, P3)

◆ TSFX_R

#define TSFX_R (   TableName,
  FuncName,
  RC 
)    GLOBAL_SCRIPT_FUNC_X_R(TableName, FuncName, RC)

◆ TSFX_R_1

#define TSFX_R_1 (   TableName,
  FuncName,
  RC,
  P0 
)    GLOBAL_SCRIPT_FUNC_X_R_1(TableName, FuncName, RC, P0)

◆ TSFX_R_2

#define TSFX_R_2 (   TableName,
  FuncName,
  RC,
  P0,
  P1 
)    GLOBAL_SCRIPT_FUNC_X_R_2(TableName, FuncName, RC, P0, P1)

◆ TSFX_R_3

#define TSFX_R_3 (   TableName,
  FuncName,
  RC,
  P0,
  P1,
  P2 
)    GLOBAL_SCRIPT_FUNC_X_R_3(TableName, FuncName, RC, P0, P1, P2)

◆ TSFX_R_4

#define TSFX_R_4 (   TableName,
  FuncName,
  RC,
  P0,
  P1,
  P2,
  P3 
)    GLOBAL_SCRIPT_FUNC_X_R_4(TableName, FuncName, RC, P0, P1, P2, P3)