diff options
author | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-12-21 12:04:08 +0100 |
---|---|---|
committer | madmaxoft@gmail.com <madmaxoft@gmail.com@0a769ca7-a7f5-676a-18bf-c427514a06d6> | 2012-12-21 12:04:08 +0100 |
commit | 912a1e7adc650d20b0302a3dfe45816b5e541bc7 (patch) | |
tree | 65e7ffbf33d8f1335a4997fc5a727739f9dcdd34 /source/Plugin_NewLua.cpp | |
parent | Extended player inventory by direct r/o access to armor slots (diff) | |
download | cuberite-912a1e7adc650d20b0302a3dfe45816b5e541bc7.tar cuberite-912a1e7adc650d20b0302a3dfe45816b5e541bc7.tar.gz cuberite-912a1e7adc650d20b0302a3dfe45816b5e541bc7.tar.bz2 cuberite-912a1e7adc650d20b0302a3dfe45816b5e541bc7.tar.lz cuberite-912a1e7adc650d20b0302a3dfe45816b5e541bc7.tar.xz cuberite-912a1e7adc650d20b0302a3dfe45816b5e541bc7.tar.zst cuberite-912a1e7adc650d20b0302a3dfe45816b5e541bc7.zip |
Diffstat (limited to '')
-rw-r--r-- | source/Plugin_NewLua.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/source/Plugin_NewLua.cpp b/source/Plugin_NewLua.cpp index 373f990c2..8003dffbc 100644 --- a/source/Plugin_NewLua.cpp +++ b/source/Plugin_NewLua.cpp @@ -366,16 +366,25 @@ void cPlugin_NewLua::OnPlayerMove( cPlayer* a_Player ) -void cPlugin_NewLua::OnTakeDamage( cPawn* a_Pawn, TakeDamageInfo* a_TakeDamageInfo ) +bool cPlugin_NewLua::OnTakeDamage(cPawn & a_Receiver, TakeDamageInfo & a_TDI) { - cCSLock Lock( m_CriticalSection ); - if( !PushFunction("OnTakeDamage") ) - return; + cCSLock Lock(m_CriticalSection); + if (!PushFunction("OnTakeDamage")) + { + return false; + } - tolua_pushusertype(m_LuaState, a_Pawn, "cPawn"); - tolua_pushusertype(m_LuaState, a_TakeDamageInfo, "TakeDamageInfo"); + tolua_pushusertype(m_LuaState, &a_Receiver, "cPawn"); + tolua_pushusertype(m_LuaState, &a_TDI, "TakeDamageInfo"); - CallFunction(2, 0, "OnTakeDamage"); + if (!CallFunction(2, 1, "OnTakeDamage")) + { + return false; + } + + bool bRetVal = (tolua_toboolean(m_LuaState, -1, 0) != 0); + lua_pop(m_LuaState, 1); + return bRetVal; } |