diff options
author | sfan5 <sfan5@live.de> | 2022-06-14 12:39:01 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2022-06-15 17:20:07 +0200 |
commit | e9e721b9371445d5b96455092079833df3d961b9 (patch) | |
tree | c04a9c8c75d0aca93b77b1841b33d090e1bd0f00 /src/script/cpp_api | |
parent | 992f501159b2fc6c5878d86cc477413250b4efa2 (diff) | |
download | minetest-e9e721b9371445d5b96455092079833df3d961b9.tar.gz minetest-e9e721b9371445d5b96455092079833df3d961b9.tar.bz2 minetest-e9e721b9371445d5b96455092079833df3d961b9.zip |
Fix entity related bugs
* Make minetest.add_entity() binary-safe
* Fix on_death pushing dummy ObjectRef instead of nil
Diffstat (limited to 'src/script/cpp_api')
-rw-r--r-- | src/script/cpp_api/s_entity.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/script/cpp_api/s_entity.cpp b/src/script/cpp_api/s_entity.cpp index 9368bec76..852a27ddc 100644 --- a/src/script/cpp_api/s_entity.cpp +++ b/src/script/cpp_api/s_entity.cpp @@ -244,7 +244,7 @@ bool ScriptApiEntity::luaentity_Punch(u16 id, { SCRIPTAPI_PRECHECKHEADER - //infostream<<"scriptapi_luaentity_step: id="<<id<<std::endl; + assert(puncher); int error_handler = PUSH_ERROR_HANDLER(L); @@ -294,7 +294,10 @@ bool ScriptApiEntity::luaentity_run_simple_callback(u16 id, } luaL_checktype(L, -1, LUA_TFUNCTION); lua_pushvalue(L, object); // self - objectrefGetOrCreate(L, sao); // killer reference + if (sao) + objectrefGetOrCreate(L, sao); // sao reference + else + lua_pushnil(L); setOriginFromTable(object); PCALL_RES(lua_pcall(L, 2, 1, error_handler)); |