diff --git a/src/lua_baselib.c b/src/lua_baselib.c index 58c7c80a3..3e1f2c2dd 100644 --- a/src/lua_baselib.c +++ b/src/lua_baselib.c @@ -935,6 +935,17 @@ static int lib_pRingXYMovement(lua_State *L) return 0; } +static int lib_pSceneryXYMovement(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_SceneryXYMovement(actor); + return 0; +} + // P_USER //////////// @@ -3295,6 +3306,7 @@ static luaL_Reg lib[] = { {"P_RailThinker",lib_pRailThinker}, {"P_XYMovement",lib_pXYMovement}, {"P_RingXYMovement",lib_pRingXYMovement}, + {"P_SceneryXYMovement",lib_pSceneryXYMovement}, // p_user {"P_GetPlayerHeight",lib_pGetPlayerHeight}, diff --git a/src/p_mobj.c b/src/p_mobj.c index 9d6efd950..a6886c1ad 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -2111,7 +2111,7 @@ void P_RingXYMovement(mobj_t *mo) P_SlideMove(mo); } -static void P_SceneryXYMovement(mobj_t *mo) +void P_SceneryXYMovement(mobj_t *mo) { fixed_t oldx, oldy; // reducing bobbing/momentum on ice when up against walls diff --git a/src/p_mobj.h b/src/p_mobj.h index d874ffe09..99d091760 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -472,6 +472,7 @@ void P_RemovePrecipMobj(precipmobj_t *mobj); void P_SetScale(mobj_t *mobj, fixed_t newscale); void P_XYMovement(mobj_t *mo); void P_RingXYMovement(mobj_t *mo); +void P_SceneryXYMovement(mobj_t *mo); void P_EmeraldManager(void); extern INT32 modulothing;