From 6d3a2919a2ce8b80ed1d3e2678a0eaa3a4f43251 Mon Sep 17 00:00:00 2001
From: GoldenTails <milestailsprower101n2@gmail.com>
Date: Sun, 19 Apr 2020 20:41:30 -0500
Subject: [PATCH] Expose P_ZMovement to Lua.

Because P_XYMovement wasn't enough.
---
 src/lua_baselib.c | 13 +++++++++++++
 src/p_mobj.c      |  2 +-
 src/p_mobj.h      |  1 +
 3 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index 3e1f2c2dde..68455cd65e 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -946,6 +946,18 @@ static int lib_pSceneryXYMovement(lua_State *L)
 	return 0;
 }
 
+static int lib_pZMovement(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_ZMovement(actor));
+	return 1;
+}
+
+
 // P_USER
 ////////////
 
@@ -3307,6 +3319,7 @@ static luaL_Reg lib[] = {
 	{"P_XYMovement",lib_pXYMovement},
 	{"P_RingXYMovement",lib_pRingXYMovement},
 	{"P_SceneryXYMovement",lib_pSceneryXYMovement},
+	{"P_ZMovement",lib_pZMovement},
 
 	// p_user
 	{"P_GetPlayerHeight",lib_pGetPlayerHeight},
diff --git a/src/p_mobj.c b/src/p_mobj.c
index a6886c1add..02b9885b8b 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -2337,7 +2337,7 @@ boolean P_CheckSolidLava(ffloor_t *rover)
 // P_ZMovement
 // Returns false if the mobj was killed/exploded/removed, true otherwise.
 //
-static boolean P_ZMovement(mobj_t *mo)
+boolean P_ZMovement(mobj_t *mo)
 {
 	fixed_t dist, delta;
 	boolean onground;
diff --git a/src/p_mobj.h b/src/p_mobj.h
index 99d0917609..63095e2ff8 100644
--- a/src/p_mobj.h
+++ b/src/p_mobj.h
@@ -473,6 +473,7 @@ 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);
+boolean P_ZMovement(mobj_t *mo);
 void P_EmeraldManager(void);
 
 extern INT32 modulothing;
-- 
GitLab