- Duke: use player palette only on the foot weapon.

This is the only one showing Duke's clothes - the translation may cause discoloration on the others.
This commit is contained in:
Christoph Oelckers 2022-10-24 20:14:31 +02:00
parent 79a1110d5f
commit ffd284d233

View file

@ -202,7 +202,7 @@ void displayweapon_d(int snum, double interpfrac)
{ {
int cw; int cw;
int i, j; int i, j;
int o, pal; int o, pal, pal2;
double weapon_sway, weapon_xoffset, gun_pos, looking_arc, kickback_pic, random_club_frame, hard_landing, look_anghalf, horiz16th, plravel; double weapon_sway, weapon_xoffset, gun_pos, looking_arc, kickback_pic, random_club_frame, hard_landing, look_anghalf, horiz16th, plravel;
int8_t shade; int8_t shade;
player_struct* p; player_struct* p;
@ -246,9 +246,9 @@ void displayweapon_d(int snum, double interpfrac)
shade = p->GetActor()->spr.shade; shade = p->GetActor()->spr.shade;
if(shade > 24) shade = 24; if(shade > 24) shade = 24;
pal = !p->insector() ? 0 : p->GetActor()->spr.pal == 1 ? 1 : p->cursector->floorpal; pal2 = pal = !p->insector() ? 0 : p->GetActor()->spr.pal == 1 ? 1 : p->cursector->floorpal;
if (pal == 0) if (pal2 == 0)
pal = p->palookup; pal2 = p->palookup;
auto adjusted_arc = looking_arc - hard_landing; auto adjusted_arc = looking_arc - hard_landing;
bool playerVars = p->newOwner != nullptr || ud.cameraactor != nullptr || p->over_shoulder_on > 0 || (p->GetActor()->spr.pal != 1 && p->GetActor()->spr.extra <= 0); bool playerVars = p->newOwner != nullptr || ud.cameraactor != nullptr || p->over_shoulder_on > 0 || (p->GetActor()->spr.pal != 1 && p->GetActor()->spr.extra <= 0);
@ -258,7 +258,7 @@ void displayweapon_d(int snum, double interpfrac)
if(playerVars || playerAnims) if(playerVars || playerAnims)
return; return;
animateknee(shade, p, look_anghalf, adjusted_arc, horiz16th, plravel, pal, interpfrac); animateknee(shade, p, look_anghalf, adjusted_arc, horiz16th, plravel, pal2, interpfrac);
if (isWW2GI()) if (isWW2GI())
{ {
@ -287,11 +287,11 @@ void displayweapon_d(int snum, double interpfrac)
{ {
if (j < 5 || j > 9) if (j < 5 || j > 9)
{ {
hud_drawpal(weapon_xoffset + 80 - look_anghalf, looking_arc + 250 - gun_pos, KNEE, shade, o | 4, pal); hud_drawpal(weapon_xoffset + 80 - look_anghalf, looking_arc + 250 - gun_pos, KNEE, shade, o | 4, pal2);
} }
else else
{ {
hud_drawpal(weapon_xoffset + 160 - 16 - look_anghalf, looking_arc + 214 - gun_pos, KNEE + 1, shade, o | 4, pal); hud_drawpal(weapon_xoffset + 160 - 16 - look_anghalf, looking_arc + 214 - gun_pos, KNEE + 1, shade, o | 4, pal2);
} }
} }
@ -316,12 +316,12 @@ void displayweapon_d(int snum, double interpfrac)
if (*kb < 5 || *kb > 9) if (*kb < 5 || *kb > 9)
{ {
hud_drawpal(weapon_xoffset + 220 - look_anghalf, hud_drawpal(weapon_xoffset + 220 - look_anghalf,
looking_arc + 250 - gun_pos, KNEE, shade, o, pal); looking_arc + 250 - gun_pos, KNEE, shade, o, pal2);
} }
else else
{ {
hud_drawpal(weapon_xoffset + 160 - look_anghalf, hud_drawpal(weapon_xoffset + 160 - look_anghalf,
looking_arc + 214 - gun_pos, KNEE + 1, shade, o, pal); looking_arc + 214 - gun_pos, KNEE + 1, shade, o, pal2);
} }
} }
}; };