diff --git a/src/lua_baselib.c b/src/lua_baselib.c index 8f6c41e10..c81c1cd0f 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -968,6 +968,17 @@ static int lib_pRingZMovement(lua_State *L) return 0; } +static int lib_pSceneryZMovement(lua_State *L) +{ + mobj_t *actor = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ)); + NOHUD + INLEVEL + if (!actor) + return LUA_ErrInvalid(L, "mobj_t"); + lua_pushboolean(L, P_SceneryZMovement(actor)); + return 1; +} + // P_USER //////////// @@ -3331,6 +3342,7 @@ static luaL_Reg lib[] = { {"P_SceneryXYMovement",lib_pSceneryXYMovement}, {"P_ZMovement",lib_pZMovement}, {"P_RingZMovement",lib_pRingZMovement}, + {"P_SceneryZMovement",lib_pSceneryZMovement}, // p_user {"P_GetPlayerHeight",lib_pGetPlayerHeight}, diff --git a/src/p_mobj.c b/src/p_mobj.c index e9ebf571d..84ab1df39 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -3069,7 +3069,7 @@ nightsdone: } } -static boolean P_SceneryZMovement(mobj_t *mo) +boolean P_SceneryZMovement(mobj_t *mo) { // Intercept the stupid 'fall through 3dfloors' bug if (mo->subsector->sector->ffloors) diff --git a/src/p_mobj.h b/src/p_mobj.h index f5c14fde5..ab1e1814f 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -475,6 +475,7 @@ void P_RingXYMovement(mobj_t *mo); void P_SceneryXYMovement(mobj_t *mo); boolean P_ZMovement(mobj_t *mo); void P_RingZMovement(mobj_t *mo); +boolean P_SceneryZMovement(mobj_t *mo); void P_EmeraldManager(void); extern INT32 modulothing;