diff --git a/src/lua_baselib.c b/src/lua_baselib.c index c81c1cd0f..ba90912cf 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -979,6 +979,17 @@ static int lib_pSceneryZMovement(lua_State *L) return 1; } +static int lib_pPlayerZMovement(lua_State *L) +{ + mobj_t *actor = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ)); + NOHUD + INLEVEL + if (!actor) + return LUA_ErrInvalid(L, "mobj_t"); + P_PlayerZMovement(actor); + return 0; +} + // P_USER //////////// @@ -3343,6 +3354,7 @@ static luaL_Reg lib[] = { {"P_ZMovement",lib_pZMovement}, {"P_RingZMovement",lib_pRingZMovement}, {"P_SceneryZMovement",lib_pSceneryZMovement}, + {"P_PlayerZMovement",lib_pPlayerZMovement}, // p_user {"P_GetPlayerHeight",lib_pGetPlayerHeight}, diff --git a/src/p_mobj.c b/src/p_mobj.c index 84ab1df39..6f3f53559 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -2891,7 +2891,7 @@ static boolean P_PlayerPolyObjectZMovement(mobj_t *mo) return stopmovecut; } -static void P_PlayerZMovement(mobj_t *mo) +void P_PlayerZMovement(mobj_t *mo) { boolean onground; diff --git a/src/p_mobj.h b/src/p_mobj.h index ab1e1814f..643e3d04c 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -476,6 +476,7 @@ 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_PlayerZMovement(mobj_t *mo); void P_EmeraldManager(void); extern INT32 modulothing;