From 9b042064360f20fdc8f7c0dc4717e06ea9f1dd93 Mon Sep 17 00:00:00 2001
From: Blur <danielthesmartypants2017@gmail.com>
Date: Sun, 2 Feb 2025 01:39:24 -0600
Subject: [PATCH 1/6] Fix Lua camera angle/aiming in 1st person.

---
 src/lua_hudlib.c |  4 ++--
 src/p_local.h    |  1 +
 src/p_user.c     | 11 +++++++++++
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index c8327658a6..70282ab5dd 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -339,7 +339,7 @@ static int camera_get(lua_State *L)
 		lua_pushboolean(L, cam->chase);
 		break;
 	case camera_aiming:
-		lua_pushinteger(L, cam->aiming);
+		lua_pushinteger(L, cam->chase ? cam->aiming : P_GetLocalAiming(&players[displayplayer])); // Swap angle vars depending on chasecam.
 		break;
 	case camera_x:
 		lua_pushinteger(L, cam->x);
@@ -354,7 +354,7 @@ static int camera_get(lua_State *L)
 		lua_pushboolean(L, cam->reset);
 		break;
 	case camera_angle:
-		lua_pushinteger(L, cam->angle);
+		lua_pushinteger(L, cam->chase ? cam->angle : P_GetLocalAngle(&players[displayplayer]));
 		break;
 	case camera_subsector:
 		LUA_PushUserdata(L, cam->subsector, META_SUBSECTOR);
diff --git a/src/p_local.h b/src/p_local.h
index 85a31cf898..1f07cee91f 100644
--- a/src/p_local.h
+++ b/src/p_local.h
@@ -139,6 +139,7 @@ void P_SetPlayerAngle(player_t *player, angle_t angle);
 angle_t P_GetLocalAngle(player_t *player);
 void P_SetLocalAngle(player_t *player, angle_t angle);
 void P_ForceLocalAngle(player_t *player, angle_t angle);
+angle_t P_GetLocalAiming(player_t *player);
 boolean P_PlayerFullbright(player_t *player);
 boolean P_PlayerCanEnterSpinGaps(player_t *player);
 boolean P_PlayerShouldUseSpinHeight(player_t *player);
diff --git a/src/p_user.c b/src/p_user.c
index 7cc9c02ae7..138b0289fd 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -13217,6 +13217,17 @@ void P_ForceLocalAngle(player_t *player, angle_t angle)
 		localangle2 = angle;
 }
 
+// USED BY LUA ONLY!!
+angle_t P_GetLocalAiming(player_t *player)
+{
+	if (player == &players[consoleplayer])
+		return localaiming;
+	else if (player == &players[secondarydisplayplayer])
+		return localaiming2;
+	else
+		return 0;
+}
+
 boolean P_PlayerFullbright(player_t *player)
 {
 	return (player->powers[pw_super]
-- 
GitLab


From b9f7c2c117182b00899ed5ea8c9710ea5a0c5255 Mon Sep 17 00:00:00 2001
From: Jisk <danielthesmartypants2017+jisk@gmail.com>
Date: Sun, 2 Feb 2025 16:32:52 +0000
Subject: [PATCH 2/6] Apply 1 suggestion(s) to 1 file(s)

Co-authored-by: Lugent <lucariopokemonaura@gmail.com>
---
 src/lua_hudlib.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index 70282ab5dd..39e5abc863 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -339,7 +339,11 @@ static int camera_get(lua_State *L)
 		lua_pushboolean(L, cam->chase);
 		break;
 	case camera_aiming:
-		lua_pushinteger(L, cam->chase ? cam->aiming : P_GetLocalAiming(&players[displayplayer])); // Swap angle vars depending on chasecam.
+		if (!cam->chase) // Swap angle vars depending on chasecam.
+            lua_pushinteger(L, ((player == &players[secondarydisplayplayer]) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
+        
+        else
+            lua_pushinteger(L, cam->chase ? cam->aiming : P_GetLocalAiming(&players[displayplayer]));
 		break;
 	case camera_x:
 		lua_pushinteger(L, cam->x);
-- 
GitLab


From 56428e61e427b35211f04cc18a7dcf30023e5644 Mon Sep 17 00:00:00 2001
From: Blur <danielthesmartypants2017@gmail.com>
Date: Sun, 2 Feb 2025 11:17:17 -0600
Subject: [PATCH 3/6] Completely fix camera_get

---
 src/lua_hudlib.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index 39e5abc863..88272b0f41 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -340,10 +340,9 @@ static int camera_get(lua_State *L)
 		break;
 	case camera_aiming:
 		if (!cam->chase) // Swap angle vars depending on chasecam.
-            lua_pushinteger(L, ((player == &players[secondarydisplayplayer]) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
-        
+            lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
         else
-            lua_pushinteger(L, cam->chase ? cam->aiming : P_GetLocalAiming(&players[displayplayer]));
+            lua_pushinteger(L, cam->aiming);
 		break;
 	case camera_x:
 		lua_pushinteger(L, cam->x);
@@ -358,7 +357,10 @@ static int camera_get(lua_State *L)
 		lua_pushboolean(L, cam->reset);
 		break;
 	case camera_angle:
-		lua_pushinteger(L, cam->chase ? cam->angle : P_GetLocalAngle(&players[displayplayer]));
+		if (!cam->chase) // Swap angle vars depending on chasecam.
+            lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAngle(&players[secondarydisplayplayer]) : P_GetLocalAngle(&players[displayplayer]));
+        else
+            lua_pushinteger(L, cam->angle);
 		break;
 	case camera_subsector:
 		LUA_PushUserdata(L, cam->subsector, META_SUBSECTOR);
-- 
GitLab


From 2b95c8e194753b58dbd560c998ac8455ee62079a Mon Sep 17 00:00:00 2001
From: Blur <danielthesmartypants2017@gmail.com>
Date: Sun, 2 Feb 2025 11:40:48 -0600
Subject: [PATCH 4/6] Fix formatting

---
 src/lua_hudlib.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index 88272b0f41..0c2391653e 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -340,9 +340,9 @@ static int camera_get(lua_State *L)
 		break;
 	case camera_aiming:
 		if (!cam->chase) // Swap angle vars depending on chasecam.
-            lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
-        else
-            lua_pushinteger(L, cam->aiming);
+        	lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
+    	else
+			lua_pushinteger(L, cam->aiming);
 		break;
 	case camera_x:
 		lua_pushinteger(L, cam->x);
@@ -358,9 +358,9 @@ static int camera_get(lua_State *L)
 		break;
 	case camera_angle:
 		if (!cam->chase) // Swap angle vars depending on chasecam.
-            lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAngle(&players[secondarydisplayplayer]) : P_GetLocalAngle(&players[displayplayer]));
-        else
-            lua_pushinteger(L, cam->angle);
+			lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAngle(&players[secondarydisplayplayer]) : P_GetLocalAngle(&players[displayplayer]));
+		else
+			lua_pushinteger(L, cam->angle);
 		break;
 	case camera_subsector:
 		LUA_PushUserdata(L, cam->subsector, META_SUBSECTOR);
-- 
GitLab


From a4676792a453dd885176958d5f24718ea0656403 Mon Sep 17 00:00:00 2001
From: Blur <danielthesmartypants2017@gmail.com>
Date: Sun, 2 Feb 2025 11:42:01 -0600
Subject: [PATCH 5/6] Fix Formatting (Part 2)

---
 src/lua_hudlib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index 0c2391653e..fb3d6d9091 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -340,7 +340,7 @@ static int camera_get(lua_State *L)
 		break;
 	case camera_aiming:
 		if (!cam->chase) // Swap angle vars depending on chasecam.
-        	lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
+			lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
     	else
 			lua_pushinteger(L, cam->aiming);
 		break;
-- 
GitLab


From 8442860f28a25b3d9be002a619874cd1be7b2b1f Mon Sep 17 00:00:00 2001
From: Blur <danielthesmartypants2017@gmail.com>
Date: Sun, 2 Feb 2025 11:44:12 -0600
Subject: [PATCH 6/6] Fix Formatting (Part 3)

---
 src/lua_hudlib.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index fb3d6d9091..3e48134ab2 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -341,7 +341,7 @@ static int camera_get(lua_State *L)
 	case camera_aiming:
 		if (!cam->chase) // Swap angle vars depending on chasecam.
 			lua_pushinteger(L, (cam == &camera2) ? P_GetLocalAiming(&players[secondarydisplayplayer]) : P_GetLocalAiming(&players[displayplayer]));
-    	else
+		else
 			lua_pushinteger(L, cam->aiming);
 		break;
 	case camera_x:
-- 
GitLab