NX/VITA: Properly display points in Co-Op

This commit is contained in:
cypress 2023-12-02 16:58:57 -05:00
parent e3624a44c7
commit c8f0ac928a
1 changed files with 61 additions and 25 deletions

View File

@ -42,6 +42,7 @@ qpic_t *b_touch;
qpic_t *sb_round[5]; qpic_t *sb_round[5];
qpic_t *sb_round_num[10]; qpic_t *sb_round_num[10];
qpic_t *sb_moneyback; qpic_t *sb_moneyback;
qpic_t *sb_moneyback_condensed;
qpic_t *instapic; qpic_t *instapic;
qpic_t *x2pic; qpic_t *x2pic;
qpic_t *revivepic; qpic_t *revivepic;
@ -58,8 +59,8 @@ qpic_t *bettypic;
qpic_t *fx_blood_lu; qpic_t *fx_blood_lu;
int old_points; int old_points[4]; // cypress -- fix point display in coop.
int current_points; int current_points[4]; // cypress -- fix point display in coop.
int point_change_interval; int point_change_interval;
int point_change_interval_neg; int point_change_interval_neg;
int alphabling = 0; int alphabling = 0;
@ -108,6 +109,7 @@ void HUD_Init (void) {
} }
sb_moneyback = Draw_CachePic ("gfx/hud/moneyback.tga"); sb_moneyback = Draw_CachePic ("gfx/hud/moneyback.tga");
sb_moneyback_condensed = Draw_CachePic ("gfx/hud/moneyback_condensed.tga");
instapic = Draw_CachePic ("gfx/hud/in_kill.tga"); instapic = Draw_CachePic ("gfx/hud/in_kill.tga");
x2pic = Draw_CachePic ("gfx/hud/2x.tga"); x2pic = Draw_CachePic ("gfx/hud/2x.tga");
@ -194,8 +196,10 @@ void HUD_NewMap (void)
point_change[i].alive_time = 0.0; point_change[i].alive_time = 0.0;
} }
old_points = 500; for(i = 0; i < 4; i++) {
current_points = 500; old_points[i] = current_points[i] = 500;
}
point_change_interval = 0; point_change_interval = 0;
point_change_interval_neg = 0; point_change_interval_neg = 0;
@ -453,67 +457,99 @@ void HUD_Points (void)
// draw number // draw number
f = s->points; f = s->points;
if (f > current_points) if (f > current_points[i])
{ {
point_change_interval_neg = 0; point_change_interval_neg = 0;
if (!point_change_interval) if (!point_change_interval)
{ {
point_change_interval = (int)(f - old_points)/55;; point_change_interval = (int)(f - old_points[i])/55;;
} }
current_points = old_points + point_change_interval; current_points[i] = old_points[i] + point_change_interval;
if (f < current_points) if (f < current_points[i])
{ {
current_points = f; current_points[i] = f;
point_change_interval = 0; point_change_interval = 0;
} }
} }
else if (f < current_points) else if (f < current_points[i])
{ {
point_change_interval = 0; point_change_interval = 0;
if (!point_change_interval_neg) if (!point_change_interval_neg)
{ {
point_change_interval_neg = (int)(old_points - f)/55; point_change_interval_neg = (int)(old_points[i] - f)/55;
} }
current_points = old_points - point_change_interval_neg; current_points[i] = old_points[i] - point_change_interval_neg;
if (f > current_points) if (f > current_points[i])
{ {
current_points = f; current_points[i] = f;
point_change_interval_neg = 0; point_change_interval_neg = 0;
} }
} }
// Draw a "condensed" version of the score background
// if it's for a player other than us, for easier
// differential, and screen space saving.
qpic_t* moneyback;
int x_position;
int point_x_offset;
if (i == cl.viewentity - 1) {
moneyback = sb_moneyback;
#ifdef VITA #ifdef VITA
Draw_StretchPic(12, 407 - (35 * i), sb_moneyback, 128, 32); x_position = 12;
point_x_offset = 5;
#else #else
Draw_StretchPic(8, 629 - (24 * i), sb_moneyback, 86, 21); x_position = 5;
point_x_offset = 4;
#endif // VITA
} else {
moneyback = sb_moneyback_condensed;
#ifdef VITA
x_position = 3;
point_x_offset = 14;
#else
x_position = -4;
point_x_offset = 15;
#endif // VITA
}
#ifdef VITA
Draw_StretchPic(x_position, 407 - (35 * i), moneyback, 128, 32);
#else
Draw_StretchPic(x_position, 629 - (24 * i), moneyback, 86, 21);
#endif // VITA #endif // VITA
#ifdef VITA #ifdef VITA
xplus = HUD_itoa (f, str)*16; xplus = HUD_itoa (f, str)*16;
Draw_ColoredStringScale (((160 - xplus)/2)-5, 413 - (35 * i), va("%i", current_points), r, g, b, 1, 2.0f); //2x Scale/White Draw_ColoredStringScale (((160 - xplus)/2)-point_x_offset, 413 - (35 * i), va("%i", current_points[i]), r, g, b, 1, 2.0f); //2x Scale/White
#else #else
xplus = HUD_itoa (f, str)*12; xplus = HUD_itoa (f, str)*12;
Draw_ColoredStringScale (((111 - xplus)/2)-5, 633 - (24 * i), va("%i", current_points), r, g, b, 1, 1.5f); Draw_ColoredStringScale (((111 - xplus)/2)-point_x_offset, 633 - (24 * i), va("%i", current_points[i]), r, g, b, 1, 1.5f);
#endif // VITA #endif // VITA
if (old_points != f) if (old_points[i] != f)
{ {
if (f > old_points) if (f > old_points[i])
{ {
#ifdef VITA #ifdef VITA
HUD_Parse_Point_Change(f - old_points, 0, 80 - (xplus), 415 - (35 * i)); HUD_Parse_Point_Change(f - old_points[i], 0, 80 - (xplus), 415 - (35 * i));
#else #else
HUD_Parse_Point_Change(f - old_points, 0, 140 - (xplus), y - (24 * i)); HUD_Parse_Point_Change(f - old_points[i], 0, 140 - (xplus), y - (28 * i));
#endif // VITA #endif // VITA
} }
else else
{ {
#ifdef VITA #ifdef VITA
HUD_Parse_Point_Change(old_points - f, 1, 80 - (xplus), 415 - (35 * i)); HUD_Parse_Point_Change(old_points[i] - f, 1, 80 - (xplus), 415 - (35 * i));
#else #else
HUD_Parse_Point_Change(old_points - f, 1, 140 - (xplus), y - (24 * i)); HUD_Parse_Point_Change(old_points[i] - f, 1, 140 - (xplus), y - (28 * i));
#endif // VITA #endif // VITA
} }
old_points = f; old_points[i] = f;
} }
y += 10; y += 10;