diff --git a/src/lua_baselib.c b/src/lua_baselib.c index 712bc404582edd0e502f6fc1ec63fc3eb9ba2938..97d2fdc243518a4d10dd4b3edee96c339397eb1d 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -2047,12 +2047,19 @@ static int lib_pStartQuake(lua_State *L) static int lib_evCrumbleChain(lua_State *L) { - sector_t *sec = *((sector_t **)luaL_checkudata(L, 1, META_SECTOR)); - ffloor_t *rover = *((ffloor_t **)luaL_checkudata(L, 2, META_FFLOOR)); + sector_t *sec = NULL; + ffloor_t *rover = NULL; NOHUD INLEVEL - /*if (!sec) - return LUA_ErrInvalid(L, "sector_t");*/ + if (lua_isuserdata(L, 2)) + { + sec = *((sector_t **)luaL_checkudata(L, 1, META_SECTOR)); + rover = *((ffloor_t **)luaL_checkudata(L, 2, META_FFLOOR)); + if (!sec) + return LUA_ErrInvalid(L, "sector_t"); + } + else + rover = *((ffloor_t **)luaL_checkudata(L, 1, META_FFLOOR)); if (!rover) return LUA_ErrInvalid(L, "ffloor_t"); EV_CrumbleChain(sec, rover);