diff --git a/source/games/duke/src/hudweapon_d.cpp b/source/games/duke/src/hudweapon_d.cpp index 2d3529cf5..a769bd3e5 100644 --- a/source/games/duke/src/hudweapon_d.cpp +++ b/source/games/duke/src/hudweapon_d.cpp @@ -279,7 +279,7 @@ void displayweapon_d(int snum, double smoothratio) int cw; int i, j; int o,pal; - double weapon_sway, weapon_xoffset, gun_pos, looking_arc, kickback_pic; + double weapon_sway, weapon_xoffset, gun_pos, looking_arc, kickback_pic, random_club_frame; signed char gs; struct player_struct *p; @@ -292,6 +292,7 @@ void displayweapon_d(int snum, double smoothratio) looking_arc = fabs(p->q16look_ang / (double)(FRACUNIT)) / 9.; weapon_sway = p->oweapon_sway + fmulscale16(p->weapon_sway - p->oweapon_sway, smoothratio); kickback_pic = p->okickback_pic + fmulscale16(*kb - p->okickback_pic, smoothratio); + random_club_frame = p->orandom_club_frame + fmulscale16(p->random_club_frame - p->orandom_club_frame, smoothratio); gs = sprite[p->i].shade; if(gs > 24) gs = 24; @@ -1129,7 +1130,7 @@ void displayweapon_d(int snum, double smoothratio) hud_drawpal(weapon_xoffset + 184 - p->lookanghalf(), looking_arc + 240 - gun_pos, SHRINKER + 2, - 16 - (calcSinTableValue(p->random_club_frame) / 1024.), + 16 - (xs_CRoundToInt(calcSinTableValue(random_club_frame)) >> 10), o, 0); hud_drawpal(weapon_xoffset + 188 - p->lookanghalf(), @@ -1286,7 +1287,7 @@ void displayweapon_d(int snum, double smoothratio) { hud_drawpal(weapon_xoffset + 184 - p->lookanghalf(), looking_arc + 240 - gun_pos, SHRINKER + 2, - 16 - (calcSinTableValue(p->random_club_frame) / 1024.), + 16 - (xs_CRoundToInt(calcSinTableValue(random_club_frame)) >> 10), o, 2); hud_drawpal(weapon_xoffset + 188 - p->lookanghalf(), @@ -1296,7 +1297,7 @@ void displayweapon_d(int snum, double smoothratio) { hud_drawpal(weapon_xoffset + 184 - p->lookanghalf(), looking_arc + 240 - gun_pos, SHRINKER + 2, - 16 - (calcSinTableValue(p->random_club_frame) / 1024.), + 16 - (xs_CRoundToInt(calcSinTableValue(random_club_frame)) >> 10), o, 0); hud_drawpal(weapon_xoffset + 188 - p->lookanghalf(), diff --git a/source/games/duke/src/player.cpp b/source/games/duke/src/player.cpp index 2fe10ca94..89f70d48b 100644 --- a/source/games/duke/src/player.cpp +++ b/source/games/duke/src/player.cpp @@ -905,6 +905,7 @@ void backupweapon(player_struct* p) p->oweapon_sway = p->weapon_sway; p->oweapon_pos = p->weapon_pos; p->okickback_pic = p->kickback_pic; + p->orandom_club_frame = p->random_club_frame; } //--------------------------------------------------------------------------- diff --git a/source/games/duke/src/types.h b/source/games/duke/src/types.h index c5c67ec44..3e0f1df69 100644 --- a/source/games/duke/src/types.h +++ b/source/games/duke/src/types.h @@ -119,8 +119,8 @@ struct player_struct // weapon drawer variables and their interpolation counterparts. int weapon_sway; int oweapon_sway; - short weapon_pos, kickback_pic; - short oweapon_pos, okickback_pic; + short weapon_pos, kickback_pic, random_club_frame; + short oweapon_pos, okickback_pic, orandom_club_frame; // From here on it is unaltered from JFDuke with the exception of a few fields that are no longer needed and were removed. @@ -143,7 +143,7 @@ struct player_struct short ftq, access_wallnum, access_spritenum; short got_access, weapon_ang, firstaid_amount; short somethingonplayer, on_crane, i, one_parallax_sectnum; - short over_shoulder_on, random_club_frame, fist_incs; + short over_shoulder_on, fist_incs; short cheat_phase; short dummyplayersprite, extra_extra8, quick_kick, last_quick_kick; short heat_amount, actorsqu, timebeforeexit, customexitsound;