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