From 34cc1d1cc4a8c27c86b71ee7c94d0c1fc177f187 Mon Sep 17 00:00:00 2001
From: Ace Lite <lightacecz@gmail.com>
Date: Wed, 23 Nov 2022 17:09:54 +0000
Subject: [PATCH] Exposed floor/ceiling pic x/y offsets to Lua.

---
 src/lua_maplib.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/src/lua_maplib.c b/src/lua_maplib.c
index b4565121d3..4b90bc0135 100644
--- a/src/lua_maplib.c
+++ b/src/lua_maplib.c
@@ -33,7 +33,13 @@ enum sector_e {
 	sector_floorheight,
 	sector_ceilingheight,
 	sector_floorpic,
+	sector_floorxoffs,
+	sector_flooryoffs,
+	sector_floorpicangle,	
 	sector_ceilingpic,
+	sector_ceilingxoffs,
+	sector_ceilingyoffs,
+	sector_ceilingpicangle,	
 	sector_lightlevel,
 	sector_floorlightlevel,
 	sector_floorlightabsolute,
@@ -63,7 +69,13 @@ static const char *const sector_opt[] = {
 	"floorheight",
 	"ceilingheight",
 	"floorpic",
+	"floorxoffs",
+	"flooryoffs",
+	"floorpicangle",	
 	"ceilingpic",
+	"ceilingxoffs",
+	"ceilingyoffs",
+	"ceilingpicangle",	
 	"lightlevel",
 	"floorlightlevel",
 	"floorlightabsolute",
@@ -607,6 +619,21 @@ static int sector_get(lua_State *L)
 		lua_pushlstring(L, levelflat->name, i);
 		return 1;
 	}
+	case sector_floorxoffs:
+	{
+		lua_pushfixed(L, sector->floor_xoffs);
+		return 1;
+	}
+	case sector_flooryoffs:
+	{
+		lua_pushfixed(L, sector->floor_yoffs);
+		return 1;
+	}
+	case sector_floorpicangle: 
+	{
+		lua_pushangle(L, sector->floorpic_angle);
+		return 1;
+	}	
 	case sector_ceilingpic: // ceilingpic
 	{
 		levelflat_t *levelflat = &levelflats[sector->ceilingpic];
@@ -616,6 +643,21 @@ static int sector_get(lua_State *L)
 		lua_pushlstring(L, levelflat->name, i);
 		return 1;
 	}
+	case sector_ceilingxoffs:
+	{
+		lua_pushfixed(L, sector->ceiling_xoffs);
+		return 1;
+	}
+	case sector_ceilingyoffs:
+	{
+		lua_pushfixed(L, sector->ceiling_yoffs);
+		return 1;
+	}
+	case sector_ceilingpicangle:
+	{
+		lua_pushangle(L, sector->ceilingpic_angle);
+		return 1;
+	}	
 	case sector_lightlevel:
 		lua_pushinteger(L, sector->lightlevel);
 		return 1;
@@ -751,9 +793,27 @@ static int sector_set(lua_State *L)
 	case sector_floorpic:
 		sector->floorpic = P_AddLevelFlatRuntime(luaL_checkstring(L, 3));
 		break;
+	case sector_floorxoffs:
+		sector->floor_xoffs = luaL_checkfixed(L, 3);
+		break;
+	case sector_flooryoffs:
+		sector->floor_yoffs = luaL_checkfixed(L, 3);
+		break;
+	case sector_floorpicangle:
+		sector->floorpic_angle = luaL_checkangle(L, 3);
+		break;		
 	case sector_ceilingpic:
 		sector->ceilingpic = P_AddLevelFlatRuntime(luaL_checkstring(L, 3));
 		break;
+	case sector_ceilingxoffs:
+		sector->ceiling_xoffs = luaL_checkfixed(L, 3);
+		break;
+	case sector_ceilingyoffs:
+		sector->ceiling_yoffs = luaL_checkfixed(L, 3);
+		break;
+	case sector_ceilingpicangle:
+		sector->ceilingpic_angle = luaL_checkangle(L, 3);
+		break;
 	case sector_lightlevel:
 		sector->lightlevel = (INT16)luaL_checkinteger(L, 3);
 		break;
-- 
GitLab