From af4189c2a10c77b7f3c9ee4e051752d96108c7f2 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 30 May 2023 18:25:39 +0200 Subject: [PATCH] - RR: fixed shotgun HUD placement This original code is technically dead wrong - it just works by happenstance. --- source/games/duke/src/hudweapon_r.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/source/games/duke/src/hudweapon_r.cpp b/source/games/duke/src/hudweapon_r.cpp index 17f533238..5e5d5b9b4 100644 --- a/source/games/duke/src/hudweapon_r.cpp +++ b/source/games/duke/src/hudweapon_r.cpp @@ -472,8 +472,16 @@ void displayweapon_r(int snum, double interpfrac) } else { - x = ((kb_ox[kb_frames[*kb]] >> 1) - 12) + offsets.X; - y = tm - (244 - kb_oy[kb_frames[*kb]]) + offsets.Y; + if (kb_frames[*kb] > 0) + { + x = ((kb_ox[kb_frames[(*kb) - 11]] >> 1) - 12) + offsets.X; + y = tm - (244 - kb_oy[kb_frames[(*kb) - 11]]) + offsets.Y; + } + else + { + x = ((kb_ox[kb_frames[*kb]] >> 1) - 12) + offsets.X; + y = tm - (244 - kb_oy[kb_frames[*kb]]) + offsets.Y; + } switch (*kb) { case 23: @@ -511,8 +519,16 @@ void displayweapon_r(int snum, double interpfrac) } else if (p->shotgun_state[0]) { - x = ((kb_ox[kb_frames2[*kb]] >> 1) - 12) + offsets.X; - y = tm - (244 - kb_oy[kb_frames2[*kb]]) + offsets.Y; + if (kb_frames2[*kb] > 0) + { + x = ((kb_ox[kb_frames2[(*kb) - 11]] >> 1) - 12) + offsets.X; + y = tm - (244 - kb_oy[kb_frames2[(*kb) - 11]]) + offsets.Y; + } + else + { + x = ((kb_ox[kb_frames2[*kb]] >> 1) - 12) + offsets.X; + y = tm - (244 - kb_oy[kb_frames2[*kb]]) + offsets.Y; + } switch (*kb) { case 23: