cLuaState: Made public the GetStackValue() functions.
This commit is contained in:
parent
e50ffba1ad
commit
ecfe17b096
@ -716,7 +716,7 @@ void cLuaState::Push(cBlockEntity * a_BlockEntity)
|
||||
|
||||
|
||||
|
||||
void cLuaState::GetReturn(int a_StackPos, bool & a_ReturnedVal)
|
||||
void cLuaState::GetStackValue(int a_StackPos, bool & a_ReturnedVal)
|
||||
{
|
||||
a_ReturnedVal = (tolua_toboolean(m_LuaState, a_StackPos, a_ReturnedVal ? 1 : 0) > 0);
|
||||
}
|
||||
@ -725,11 +725,17 @@ void cLuaState::GetReturn(int a_StackPos, bool & a_ReturnedVal)
|
||||
|
||||
|
||||
|
||||
void cLuaState::GetReturn(int a_StackPos, AString & a_ReturnedVal)
|
||||
void cLuaState::GetStackValue(int a_StackPos, AString & a_Value)
|
||||
{
|
||||
if (lua_isstring(m_LuaState, a_StackPos))
|
||||
size_t len = 0;
|
||||
const char * data = lua_tolstring(m_LuaState, a_StackPos, &len);
|
||||
if (data != NULL)
|
||||
{
|
||||
a_ReturnedVal = tolua_tocppstring(m_LuaState, a_StackPos, a_ReturnedVal.c_str());
|
||||
a_Value.assign(data, len);
|
||||
}
|
||||
else
|
||||
{
|
||||
a_Value.clear();
|
||||
}
|
||||
}
|
||||
|
||||
@ -737,7 +743,7 @@ void cLuaState::GetReturn(int a_StackPos, AString & a_ReturnedVal)
|
||||
|
||||
|
||||
|
||||
void cLuaState::GetReturn(int a_StackPos, int & a_ReturnedVal)
|
||||
void cLuaState::GetStackValue(int a_StackPos, int & a_ReturnedVal)
|
||||
{
|
||||
if (lua_isnumber(m_LuaState, a_StackPos))
|
||||
{
|
||||
@ -749,7 +755,7 @@ void cLuaState::GetReturn(int a_StackPos, int & a_ReturnedVal)
|
||||
|
||||
|
||||
|
||||
void cLuaState::GetReturn(int a_StackPos, double & a_ReturnedVal)
|
||||
void cLuaState::GetStackValue(int a_StackPos, double & a_ReturnedVal)
|
||||
{
|
||||
if (lua_isnumber(m_LuaState, a_StackPos))
|
||||
{
|
||||
|
@ -197,6 +197,19 @@ public:
|
||||
void Push(void * a_Ptr);
|
||||
void Push(cHopperEntity * a_Hopper);
|
||||
void Push(cBlockEntity * a_BlockEntity);
|
||||
|
||||
/** Retrieve value at a_StackPos, if it is a valid bool. If not, a_Value is unchanged */
|
||||
void GetStackValue(int a_StackPos, bool & a_Value);
|
||||
|
||||
/** Retrieve value at a_StackPos, if it is a valid string. If not, a_Value is unchanged */
|
||||
void GetStackValue(int a_StackPos, AString & a_Value);
|
||||
|
||||
/** Retrieve value at a_StackPos, if it is a valid number. If not, a_Value is unchanged */
|
||||
void GetStackValue(int a_StackPos, int & a_Value);
|
||||
|
||||
/** Retrieve value at a_StackPos, if it is a valid number. If not, a_Value is unchanged */
|
||||
void GetStackValue(int a_StackPos, double & a_Value);
|
||||
|
||||
|
||||
/** Call any 0-param 0-return Lua function in a single line: */
|
||||
template <typename FnT>
|
||||
@ -270,7 +283,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -292,7 +305,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
ASSERT(InitialTop == lua_gettop(m_LuaState));
|
||||
return true;
|
||||
@ -315,7 +328,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -338,7 +351,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -362,7 +375,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -387,7 +400,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -414,7 +427,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -442,7 +455,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -471,7 +484,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -501,7 +514,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -532,7 +545,7 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-1, a_Ret1);
|
||||
GetStackValue(-1, a_Ret1);
|
||||
lua_pop(m_LuaState, 1);
|
||||
return true;
|
||||
}
|
||||
@ -553,8 +566,8 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-2, a_Ret1);
|
||||
GetReturn(-1, a_Ret2);
|
||||
GetStackValue(-2, a_Ret1);
|
||||
GetStackValue(-1, a_Ret2);
|
||||
lua_pop(m_LuaState, 2);
|
||||
return true;
|
||||
}
|
||||
@ -576,8 +589,8 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-2, a_Ret1);
|
||||
GetReturn(-1, a_Ret2);
|
||||
GetStackValue(-2, a_Ret1);
|
||||
GetStackValue(-1, a_Ret2);
|
||||
lua_pop(m_LuaState, 2);
|
||||
return true;
|
||||
}
|
||||
@ -601,8 +614,8 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-2, a_Ret1);
|
||||
GetReturn(-1, a_Ret2);
|
||||
GetStackValue(-2, a_Ret1);
|
||||
GetStackValue(-1, a_Ret2);
|
||||
lua_pop(m_LuaState, 2);
|
||||
return true;
|
||||
}
|
||||
@ -627,8 +640,8 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-2, a_Ret1);
|
||||
GetReturn(-1, a_Ret2);
|
||||
GetStackValue(-2, a_Ret1);
|
||||
GetStackValue(-1, a_Ret2);
|
||||
lua_pop(m_LuaState, 2);
|
||||
return true;
|
||||
}
|
||||
@ -654,8 +667,8 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-2, a_Ret1);
|
||||
GetReturn(-1, a_Ret2);
|
||||
GetStackValue(-2, a_Ret1);
|
||||
GetStackValue(-1, a_Ret2);
|
||||
lua_pop(m_LuaState, 2);
|
||||
return true;
|
||||
}
|
||||
@ -683,8 +696,8 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-2, a_Ret1);
|
||||
GetReturn(-1, a_Ret2);
|
||||
GetStackValue(-2, a_Ret1);
|
||||
GetStackValue(-1, a_Ret2);
|
||||
lua_pop(m_LuaState, 2);
|
||||
return true;
|
||||
}
|
||||
@ -713,8 +726,8 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-2, a_Ret1);
|
||||
GetReturn(-1, a_Ret2);
|
||||
GetStackValue(-2, a_Ret1);
|
||||
GetStackValue(-1, a_Ret2);
|
||||
lua_pop(m_LuaState, 2);
|
||||
return true;
|
||||
}
|
||||
@ -743,9 +756,9 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-3, a_Ret1);
|
||||
GetReturn(-2, a_Ret2);
|
||||
GetReturn(-1, a_Ret3);
|
||||
GetStackValue(-3, a_Ret1);
|
||||
GetStackValue(-2, a_Ret2);
|
||||
GetStackValue(-1, a_Ret3);
|
||||
lua_pop(m_LuaState, 3);
|
||||
return true;
|
||||
}
|
||||
@ -775,9 +788,9 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-3, a_Ret1);
|
||||
GetReturn(-2, a_Ret2);
|
||||
GetReturn(-1, a_Ret3);
|
||||
GetStackValue(-3, a_Ret1);
|
||||
GetStackValue(-2, a_Ret2);
|
||||
GetStackValue(-1, a_Ret3);
|
||||
lua_pop(m_LuaState, 3);
|
||||
return true;
|
||||
}
|
||||
@ -808,11 +821,11 @@ public:
|
||||
{
|
||||
return false;
|
||||
}
|
||||
GetReturn(-5, a_Ret1);
|
||||
GetReturn(-4, a_Ret2);
|
||||
GetReturn(-3, a_Ret3);
|
||||
GetReturn(-2, a_Ret4);
|
||||
GetReturn(-1, a_Ret5);
|
||||
GetStackValue(-5, a_Ret1);
|
||||
GetStackValue(-4, a_Ret2);
|
||||
GetStackValue(-3, a_Ret3);
|
||||
GetStackValue(-2, a_Ret4);
|
||||
GetStackValue(-1, a_Ret5);
|
||||
lua_pop(m_LuaState, 5);
|
||||
return true;
|
||||
}
|
||||
@ -918,18 +931,6 @@ protected:
|
||||
/** Pushes a usertype of the specified class type onto the stack */
|
||||
void PushUserType(void * a_Object, const char * a_Type);
|
||||
|
||||
/** Retrieve value returned at a_StackPos, if it is a valid bool. If not, a_ReturnedVal is unchanged */
|
||||
void GetReturn(int a_StackPos, bool & a_ReturnedVal);
|
||||
|
||||
/** Retrieve value returned at a_StackPos, if it is a valid string. If not, a_ReturnedVal is unchanged */
|
||||
void GetReturn(int a_StackPos, AString & a_ReturnedVal);
|
||||
|
||||
/** Retrieve value returned at a_StackPos, if it is a valid number. If not, a_ReturnedVal is unchanged */
|
||||
void GetReturn(int a_StackPos, int & a_ReturnedVal);
|
||||
|
||||
/** Retrieve value returned at a_StackPos, if it is a valid number. If not, a_ReturnedVal is unchanged */
|
||||
void GetReturn(int a_StackPos, double & a_ReturnedVal);
|
||||
|
||||
/**
|
||||
Calls the function that has been pushed onto the stack by PushFunction(),
|
||||
with arguments pushed by PushXXX().
|
||||
|
Loading…
Reference in New Issue
Block a user