mirror of
https://github.com/nzp-team/quakespasm.git
synced 2024-11-12 23:44:06 +00:00
bc28b5c593
Fixes the HUD completely on NX, some HUD issues on VITA. Most VITA Menus are now properly scaled. Adds social badges to main menu. Fixes load screens on both platforms.
1738 lines
No EOL
52 KiB
C
1738 lines
No EOL
52 KiB
C
/*
|
|
Copyright (C) 1996-1997 Id Software, Inc.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
// gl_hud.c -- status bar code
|
|
|
|
#include "quakedef.h"
|
|
|
|
extern cvar_t waypoint_mode;
|
|
|
|
qpic_t *b_up;
|
|
qpic_t *b_down;
|
|
qpic_t *b_left;
|
|
qpic_t *b_right;
|
|
qpic_t *b_lthumb;
|
|
qpic_t *b_rthumb;
|
|
qpic_t *b_lshoulder;
|
|
qpic_t *b_rshoulder;
|
|
qpic_t *b_abutton;
|
|
qpic_t *b_bbutton;
|
|
qpic_t *b_ybutton;
|
|
qpic_t *b_xbutton;
|
|
qpic_t *b_lt;
|
|
qpic_t *b_rt;
|
|
|
|
qpic_t *sb_round[5];
|
|
qpic_t *sb_round_num[10];
|
|
qpic_t *sb_moneyback;
|
|
qpic_t *instapic;
|
|
qpic_t *x2pic;
|
|
qpic_t *revivepic;
|
|
qpic_t *jugpic;
|
|
qpic_t *floppic;
|
|
qpic_t *staminpic;
|
|
qpic_t *doublepic;
|
|
qpic_t *speedpic;
|
|
qpic_t *deadpic;
|
|
qpic_t *mulepic;
|
|
qpic_t *fragpic;
|
|
qpic_t *bettypic;
|
|
|
|
qpic_t *fx_blood_lu;
|
|
|
|
int old_points;
|
|
int current_points;
|
|
int point_change_interval;
|
|
int point_change_interval_neg;
|
|
int alphabling = 0;
|
|
float round_center_x;
|
|
float round_center_y;
|
|
|
|
extern qboolean paused_hack;
|
|
qboolean domaxammo;
|
|
|
|
double HUD_Change_time;//hide hud when not chagned
|
|
|
|
typedef struct
|
|
{
|
|
int points;
|
|
int negative;
|
|
float x;
|
|
float y;
|
|
float move_x;
|
|
float move_y;
|
|
double alive_time;
|
|
} point_change_t;
|
|
|
|
int x_value, y_value;
|
|
|
|
point_change_t point_change[10];
|
|
|
|
void HUD_Init (void) {
|
|
int i;
|
|
|
|
for (i=0 ; i<5 ; i++)
|
|
{
|
|
sb_round[i] = Draw_CachePic (va("gfx/hud/r%i.tga",i + 1));
|
|
}
|
|
|
|
for (i=0 ; i<10 ; i++)
|
|
{
|
|
sb_round_num[i] = Draw_CachePic (va("gfx/hud/r_num%i.tga",i));
|
|
}
|
|
|
|
sb_moneyback = Draw_CachePic ("gfx/hud/moneyback.tga");
|
|
instapic = Draw_CachePic ("gfx/hud/in_kill.tga");
|
|
x2pic = Draw_CachePic ("gfx/hud/2x.tga");
|
|
|
|
revivepic = Draw_CachePic ("gfx/hud/revive.tga");
|
|
jugpic = Draw_CachePic ("gfx/hud/jug.tga");
|
|
floppic = Draw_CachePic ("gfx/hud/flopper.tga");
|
|
staminpic = Draw_CachePic ("gfx/hud/stamin.tga");
|
|
doublepic = Draw_CachePic ("gfx/hud/double.tga");
|
|
speedpic = Draw_CachePic ("gfx/hud/speed.tga");
|
|
deadpic = Draw_CachePic ("gfx/hud/dead.tga");
|
|
mulepic = Draw_CachePic ("gfx/hud/mule.tga");
|
|
fragpic = Draw_CachePic ("gfx/hud/frag.tga");
|
|
bettypic = Draw_CachePic ("gfx/hud/betty.tga");
|
|
|
|
#ifdef VITA
|
|
if (sceKernelGetModel() == 0x20000) { // PSTV
|
|
b_lt = Draw_CachePic ("gfx/butticons/backl1_pstv.tga");
|
|
b_rt = Draw_CachePic ("gfx/butticons/backr1_pstv.tga");
|
|
b_lthumb = Draw_CachePic ("gfx/butticons/backl1_pstv.tga"); // Not existent
|
|
b_rthumb = Draw_CachePic ("gfx/butticons/backr1_pstv.tga"); // Not existent
|
|
b_lshoulder = Draw_CachePic ("gfx/butticons/backl1_pstv.tga"); // Not existent
|
|
b_rshoulder = Draw_CachePic ("gfx/butticons/backr1_pstv.tga"); // Not existent
|
|
} else {
|
|
b_lt = Draw_CachePic ("gfx/butticons/backl1.tga");
|
|
b_rt = Draw_CachePic ("gfx/butticons/backr1.tga");
|
|
b_lthumb = Draw_CachePic ("gfx/butticons/backl1.tga"); // Not existent
|
|
b_rthumb = Draw_CachePic ("gfx/butticons/backr1.tga"); // Not existent
|
|
b_lshoulder = Draw_CachePic ("gfx/butticons/backl1.tga"); // Not existent
|
|
b_rshoulder = Draw_CachePic ("gfx/butticons/backr1.tga"); // Not existent
|
|
}
|
|
|
|
b_left = Draw_CachePic ("gfx/butticons/dpadleft.tga");
|
|
b_right = Draw_CachePic ("gfx/butticons/dpadright.tga");
|
|
b_up = Draw_CachePic ("gfx/butticons/dpadup.tga");
|
|
b_down = Draw_CachePic ("gfx/butticons/dpaddown.tga");
|
|
b_abutton = Draw_CachePic ("gfx/butticons/fbtncross.tga");
|
|
b_bbutton = Draw_CachePic ("gfx/butticons/fbtncircle.tga");
|
|
b_ybutton = Draw_CachePic ("gfx/butticons/fbtntriangle.tga");
|
|
b_xbutton = Draw_CachePic ("gfx/butticons/fbtnsquare.tga");
|
|
#else
|
|
b_lt = Draw_CachePic ("gfx/butticons/lt.tga");
|
|
b_rt = Draw_CachePic ("gfx/butticons/rt.tga");
|
|
b_lthumb = Draw_CachePic ("gfx/butticons/lthumb.tga");
|
|
b_rthumb = Draw_CachePic ("gfx/butticons/rthumb.tga");
|
|
b_lshoulder = Draw_CachePic ("gfx/butticons/lshoulder.tga");
|
|
b_rshoulder = Draw_CachePic ("gfx/butticons/rshoulder.tga");
|
|
|
|
b_left = Draw_CachePic ("gfx/butticons/left.tga");
|
|
b_right = Draw_CachePic ("gfx/butticons/right.tga");
|
|
b_up = Draw_CachePic ("gfx/butticons/up.tga");
|
|
b_down = Draw_CachePic ("gfx/butticons/down.tga");
|
|
b_abutton = Draw_CachePic ("gfx/butticons/abutton.tga");
|
|
b_bbutton = Draw_CachePic ("gfx/butticons/bbutton.tga");
|
|
b_ybutton = Draw_CachePic ("gfx/butticons/ybutton.tga");
|
|
b_xbutton = Draw_CachePic ("gfx/butticons/xbutton.tga");
|
|
#endif
|
|
fx_blood_lu = Draw_CachePic ("gfx/hud/blood.tga");
|
|
#ifdef VITA
|
|
Achievement_Init();
|
|
#endif
|
|
}
|
|
|
|
/*
|
|
===============
|
|
HUD_NewMap
|
|
===============
|
|
*/
|
|
void HUD_NewMap (void)
|
|
{
|
|
int i;
|
|
alphabling = 0;
|
|
|
|
for (i=0 ; i<10 ; i++)
|
|
{
|
|
point_change[i].points = 0;
|
|
point_change[i].negative = 0;
|
|
point_change[i].x = 0.0;
|
|
point_change[i].y = 0.0;
|
|
point_change[i].move_x = 0.0;
|
|
point_change[i].move_y = 0.0;
|
|
point_change[i].alive_time = 0.0;
|
|
}
|
|
|
|
old_points = 500;
|
|
current_points = 500;
|
|
point_change_interval = 0;
|
|
point_change_interval_neg = 0;
|
|
|
|
#ifdef VITA
|
|
round_center_x = vid.width/2 - sb_round[0]->width + 3;
|
|
round_center_y = vid.height/2 - sb_round[0]->height/2 - 27;
|
|
#else
|
|
round_center_x = (vid.width/2 - sb_round[0]->width) /2;
|
|
round_center_y = vid.height*3/4 - sb_round[0]->height/2;
|
|
#endif
|
|
}
|
|
|
|
|
|
/*
|
|
=============
|
|
HUD_itoa
|
|
=============
|
|
*/
|
|
int HUD_itoa (int num, char *buf)
|
|
{
|
|
char *str;
|
|
int pow10;
|
|
int dig;
|
|
|
|
str = buf;
|
|
|
|
if (num < 0)
|
|
{
|
|
*str++ = '-';
|
|
num = -num;
|
|
}
|
|
|
|
for (pow10 = 10 ; num >= pow10 ; pow10 *= 10)
|
|
;
|
|
|
|
do
|
|
{
|
|
pow10 /= 10;
|
|
dig = num/pow10;
|
|
*str++ = '0'+dig;
|
|
num -= dig*pow10;
|
|
} while (pow10 != 1);
|
|
|
|
*str = 0;
|
|
|
|
return str-buf;
|
|
}
|
|
|
|
|
|
//=============================================================================
|
|
|
|
int pointsort[MAX_SCOREBOARD];
|
|
|
|
extern char scoreboardtext[MAX_SCOREBOARD][20];
|
|
extern int scoreboardtop[MAX_SCOREBOARD];
|
|
extern int scoreboardbottom[MAX_SCOREBOARD];
|
|
extern int scoreboardcount[MAX_SCOREBOARD];
|
|
extern int scoreboardlines;
|
|
|
|
/*
|
|
===============
|
|
HUD_Sorpoints
|
|
===============
|
|
*/
|
|
void HUD_Sortpoints (void)
|
|
{
|
|
int i, j, k;
|
|
|
|
// sort by points
|
|
scoreboardlines = 0;
|
|
for (i=0 ; i<cl.maxclients ; i++)
|
|
{
|
|
if (cl.scores[i].name[0])
|
|
{
|
|
pointsort[scoreboardlines] = i;
|
|
scoreboardlines++;
|
|
}
|
|
}
|
|
|
|
for (i=0 ; i<scoreboardlines ; i++)
|
|
for (j=0 ; j<scoreboardlines-1-i ; j++)
|
|
if (cl.scores[pointsort[j]].points < cl.scores[pointsort[j+1]].points)
|
|
{
|
|
k = pointsort[j];
|
|
pointsort[j] = pointsort[j+1];
|
|
pointsort[j+1] = k;
|
|
}
|
|
}
|
|
|
|
/*
|
|
===============
|
|
HUD_EndScreen
|
|
===============
|
|
*/
|
|
void HUD_EndScreen (void)
|
|
{
|
|
scoreboard_t *s;
|
|
char str[80];
|
|
int i, k, l;
|
|
int y, x, d;
|
|
|
|
//sB hack in to stop showing HUD during boot
|
|
if(cl.stats[STAT_ROUNDS] >= 1)
|
|
{
|
|
HUD_Sortpoints ();
|
|
|
|
l = scoreboardlines;
|
|
|
|
Draw_String ((vid.width/2 - 9*8)/2, vid.height/2 + (vid.height)*40/272, "GAME OVER");
|
|
|
|
sprintf (str,"You survived %3i rounds", cl.stats[STAT_ROUNDS]);
|
|
Draw_String ((vid.width/2 - strlen (str)*8)/2, vid.height/2 + (vid.height)*48/272, str);
|
|
|
|
sprintf (str,"Name Kills Points");
|
|
x = (vid.width/2 - strlen (str)*8)/2;
|
|
|
|
Draw_String (x, vid.height/2 + vid.height*68/272, str);
|
|
y = 0;
|
|
for (i=0; i<l ; i++)
|
|
{
|
|
k = pointsort[i];
|
|
s = &cl.scores[k];
|
|
if (!s->name[0])
|
|
continue;
|
|
|
|
Draw_String (x, vid.height/2 + vid.height*78/272 + y, s->name);
|
|
|
|
d = strlen (va("%i",s->kills));
|
|
Draw_String (x + (20 - d)*8, vid.height/2 + (vid.height)*78/272 + y, va("%i",s->kills));
|
|
|
|
d = strlen (va("%i",s->points));
|
|
Draw_String (x + (31 - d)*8, vid.height/2 + (vid.height)*78/272 + y, va("%i",s->points));
|
|
y += 20;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//=============================================================================
|
|
|
|
|
|
/*
|
|
==================
|
|
HUD_Points
|
|
|
|
==================
|
|
*/
|
|
|
|
|
|
void HUD_Parse_Point_Change (int points, int negative, int x_start, int y_start)
|
|
{
|
|
int i, f;
|
|
char str[10];
|
|
i=9;
|
|
while (i>0)
|
|
{
|
|
point_change[i] = point_change[i - 1];
|
|
i--;
|
|
}
|
|
|
|
point_change[i].points = points;
|
|
point_change[i].negative = negative;
|
|
|
|
f = HUD_itoa (points, str);
|
|
#ifdef VITA
|
|
point_change[i].x = x_start + 64.0 + 4.0*f;
|
|
#else
|
|
point_change[i].x = x_start - 10.0 - 8.0*f;
|
|
#endif
|
|
point_change[i].y = y_start;
|
|
point_change[i].move_x = 1.0;
|
|
point_change[i].move_y = ((rand ()&0x7fff) / ((float)0x7fff)) - 0.5;
|
|
|
|
point_change[i].alive_time = Sys_DoubleTime() + 0.4;
|
|
}
|
|
|
|
void HUD_Points (void)
|
|
{
|
|
int i, k, l;
|
|
int x, y, f, xplus;
|
|
scoreboard_t *s;
|
|
char str[12];
|
|
|
|
// scores
|
|
HUD_Sortpoints ();
|
|
|
|
// draw the text
|
|
l = scoreboardlines;
|
|
|
|
|
|
x = vid.width/2 - sb_moneyback->width;
|
|
y = vid.height - 16 - fragpic->height - 4 - 16 - sb_moneyback->height;
|
|
for (i=0 ; i<l ; i++)
|
|
{
|
|
k = pointsort[i];
|
|
s = &cl.scores[k];
|
|
if (!s->name[0])
|
|
continue;
|
|
|
|
// draw background
|
|
|
|
// draw number
|
|
f = s->points;
|
|
if (f > current_points)
|
|
{
|
|
point_change_interval_neg = 0;
|
|
if (!point_change_interval)
|
|
{
|
|
point_change_interval = (int)(f - old_points)/55;;
|
|
}
|
|
current_points = old_points + point_change_interval;
|
|
if (f < current_points)
|
|
{
|
|
current_points = f;
|
|
point_change_interval = 0;
|
|
}
|
|
}
|
|
else if (f < current_points)
|
|
{
|
|
point_change_interval = 0;
|
|
if (!point_change_interval_neg)
|
|
{
|
|
point_change_interval_neg = (int)(old_points - f)/55;
|
|
}
|
|
current_points = old_points - point_change_interval_neg;
|
|
if (f > current_points)
|
|
{
|
|
current_points = f;
|
|
point_change_interval_neg = 0;
|
|
}
|
|
}
|
|
#ifdef VITA
|
|
Draw_StretchPic(12, 407, sb_moneyback, 128, 32);
|
|
#else
|
|
Draw_StretchPic(8, 629, sb_moneyback, 86, 21);
|
|
#endif // VITA
|
|
|
|
#ifdef VITA
|
|
xplus = HUD_itoa (f, str)*16;
|
|
Draw_ColoredStringScale (((160 - xplus)/2)-5, 413, va("%i", current_points), 1, 1, 1, 1, 2.0f); //2x Scale/White
|
|
#else
|
|
xplus = HUD_itoa (f, str)*12;
|
|
Draw_ColoredStringScale (((111 - xplus)/2)-5, 633, va("%i", current_points), 1, 1, 1, 1, 1.5f);
|
|
#endif // VITA
|
|
|
|
if (old_points != f)
|
|
{
|
|
if (f > old_points)
|
|
{
|
|
#ifdef VITA
|
|
HUD_Parse_Point_Change(f - old_points, 0, 80 - (xplus), 415);
|
|
#else
|
|
HUD_Parse_Point_Change(f - old_points, 0, 140 - (xplus), y);
|
|
#endif // VITA
|
|
}
|
|
else
|
|
{
|
|
#ifdef VITA
|
|
HUD_Parse_Point_Change(old_points - f, 1, 80 - (xplus), 415);
|
|
#else
|
|
HUD_Parse_Point_Change(old_points - f, 1, 140 - (xplus), y);
|
|
#endif // VITA
|
|
}
|
|
old_points = f;
|
|
}
|
|
|
|
y += 10;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
==================
|
|
HUD_Point_Change
|
|
|
|
==================
|
|
*/
|
|
void HUD_Point_Change (void)
|
|
{
|
|
int i;
|
|
|
|
for (i=0 ; i<10 ; i++)
|
|
{
|
|
if (point_change[i].points)
|
|
{
|
|
if (point_change[i].negative)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColoredStringScale (point_change[i].x, point_change[i].y, va ("-%i", point_change[i].points), 1, 0, 0, 1, 2);
|
|
#else
|
|
Draw_ColoredStringScale (point_change[i].x, point_change[i].y, va ("-%i", point_change[i].points), 1, 0, 0, 1, 1.25f);
|
|
#endif
|
|
}
|
|
else
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColoredStringScale (point_change[i].x, point_change[i].y, va ("+%i", point_change[i].points), 1, 1, 0, 1, 2);
|
|
#else
|
|
Draw_ColoredStringScale (point_change[i].x, point_change[i].y, va ("+%i", point_change[i].points), 1, 1, 0, 1, 1.25f);
|
|
#endif
|
|
}
|
|
point_change[i].y = point_change[i].y + point_change[i].move_y;
|
|
point_change[i].x = point_change[i].x + point_change[i].move_x;
|
|
if (point_change[i].alive_time && point_change[i].alive_time < Sys_DoubleTime())
|
|
{
|
|
point_change[i].points = 0;
|
|
point_change[i].negative = 0;
|
|
point_change[i].x = 0.0;
|
|
point_change[i].y = 0.0;
|
|
point_change[i].move_x = 0.0;
|
|
point_change[i].move_y = 0.0;
|
|
point_change[i].alive_time = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
==================
|
|
HUD_Blood
|
|
|
|
==================
|
|
*/
|
|
void HUD_Blood (void)
|
|
{
|
|
float alpha;
|
|
//blubswillrule:
|
|
//this function scales linearly from health = 0 to health = 100
|
|
//alpha = (100.0 - (float)cl.stats[STAT_HEALTH])/100*255;
|
|
//but we want the picture to be fully visible at health = 20, so use this function instead
|
|
alpha = (100.0 - ((1.25 * (float) cl.stats[STAT_HEALTH]) - 25))/100;
|
|
|
|
if (alpha <= 0.0)
|
|
return;
|
|
|
|
float modifier = (sin(cl.time * 10) * 20) - 20;//always negative
|
|
if(modifier < -35.0)
|
|
modifier = -35.0;
|
|
|
|
alpha += (modifier/255);
|
|
|
|
if (alpha > 1) {
|
|
alpha = 1;
|
|
}
|
|
|
|
if(alpha < 0.0)
|
|
return;
|
|
|
|
// Set the canvas to default so we can stretch by normal bounds
|
|
GL_SetCanvas(CANVAS_DEFAULT);
|
|
Draw_AlphaStretchPic (0, 0, vid.width, vid.height, alpha, fx_blood_lu);
|
|
GL_SetCanvas(CANVAS_USEPRINT);
|
|
}
|
|
|
|
/*
|
|
===============
|
|
HUD_MaxAmmo
|
|
===============
|
|
*/
|
|
int maxammoy;
|
|
int maxammoopac;
|
|
|
|
void HUD_MaxAmmo(void)
|
|
{
|
|
maxammoy -= cl.time * 0.003;
|
|
maxammoopac -= 5;
|
|
|
|
Draw_ColoredStringScale(vid.width/2 - strlen("MAX AMMO!")*16 + 55, maxammoy, "MAX AMMO!", 255, 255, 255, maxammoopac, 2.0f);
|
|
|
|
if (maxammoopac <= 0) {
|
|
domaxammo = false;
|
|
}
|
|
}
|
|
|
|
/*
|
|
===============
|
|
HUD_Rounds
|
|
===============
|
|
*/
|
|
|
|
float color_shift[3];
|
|
float color_shift_end[3];
|
|
float color_shift_steps[3];
|
|
int color_shift_init;
|
|
float blinking;
|
|
void HUD_Rounds (void)
|
|
{
|
|
int i, x_offset, icon_num, savex;
|
|
int num[3];
|
|
x_offset = 0;
|
|
savex = 0;
|
|
|
|
int x_offset2 = 2; //Extra offset for all round images to keep things uniform (may not be neccesary?) -- SPECIFIC TO WHOLE ROUNDS
|
|
int y_offset = 50; //y_offset -- SPECIFIC TO WHOLE ROUNDS
|
|
int x_mark_offset = 10; //Needed x offset for stretched marks
|
|
int y_mark_offset = 50; //y offset specific to marks
|
|
int stretch_x = 22; //Stretch round mark image x
|
|
int stretch_y = 96; //Stretch round mark image y
|
|
|
|
if (cl.stats[STAT_ROUNDCHANGE] == 1)//this is the rounds icon at the middle of the screen
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((vid.width/2 - sb_round[0]->width) - x_offset2 + 5, vid.height/2 - sb_round[0]->height/2 - 27, stretch_x, stretch_y, sb_round[0], 0.4196, 0.004, 0, alphabling/255);
|
|
#else
|
|
Draw_ColorPic ((vid.width/2 - sb_round[0]->width) /2, vid.height*3/4 - sb_round[0]->height/2, sb_round[0], 0.4196, 0.004, 0, alphabling/255);
|
|
#endif
|
|
|
|
alphabling = alphabling + 15;
|
|
|
|
if (alphabling < 0)
|
|
alphabling = 0;
|
|
else if (alphabling > 255)
|
|
alphabling = 255;
|
|
}
|
|
else if (cl.stats[STAT_ROUNDCHANGE] == 2)//this is the rounds icon moving from middle
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic (round_center_x, round_center_y, stretch_x, stretch_y, sb_round[0], 0.4196, 0.004, 0, 1);
|
|
|
|
round_center_x -= 2.03;
|
|
round_center_y = round_center_y + ((544*1.015)/544);
|
|
|
|
if (round_center_x <= 5*(vid.width/2)/272 + x_mark_offset)
|
|
round_center_x = 5*(vid.width/2)/272 + x_mark_offset;
|
|
if (round_center_y >= vid.height - sb_round[4]->height - y_mark_offset)
|
|
round_center_y = vid.height - sb_round[4]->height - y_mark_offset;
|
|
#else
|
|
Draw_ColorPic (round_center_x, round_center_y, sb_round[0], 0.4196, 0.004, 0, 1);
|
|
|
|
round_center_x = round_center_x - ((229/108)*2 - 0.2)*(vid.width/2)/480;
|
|
round_center_y = round_center_y + ((vid.height*1.015)/272);
|
|
if (round_center_x <= 5)
|
|
round_center_x = 5;
|
|
if (round_center_y >= 250*vid.height/272)
|
|
round_center_y = 250*vid.height/272;
|
|
#endif
|
|
}
|
|
else if (cl.stats[STAT_ROUNDCHANGE] == 3)//shift to white
|
|
{
|
|
if (!color_shift_init)
|
|
{
|
|
color_shift[0] = 107;
|
|
color_shift[1] = 1;
|
|
color_shift[2] = 0;
|
|
for (i = 0; i < 3; i++)
|
|
{
|
|
color_shift_end[i] = 255;
|
|
color_shift_steps[i] = (color_shift_end[i] - color_shift[i])/60;
|
|
}
|
|
color_shift_init = 1;
|
|
}
|
|
for (i = 0; i < 3; i++)
|
|
{
|
|
if (color_shift[i] < color_shift_end[i])
|
|
color_shift[i] = color_shift[i] + color_shift_steps[i];
|
|
|
|
if (color_shift[i] >= color_shift_end[i])
|
|
color_shift[i] = color_shift_end[i];
|
|
}
|
|
if (cl.stats[STAT_ROUNDS] > 0 && cl.stats[STAT_ROUNDS] < 11)
|
|
{
|
|
|
|
for (i = 0; i < cl.stats[STAT_ROUNDS]; i++)
|
|
{
|
|
if (i == 4)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic (5*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#else
|
|
Draw_ColorPic (5*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#endif
|
|
savex = x_offset + 10;
|
|
x_offset = x_offset + 10;
|
|
continue;
|
|
}
|
|
if (i == 9)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + savex/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#else
|
|
Draw_ColorPic ((5 + savex/2)*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#endif
|
|
continue;
|
|
}
|
|
if (i > 4)
|
|
icon_num = i - 5;
|
|
else
|
|
icon_num = i;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + x_offset/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[icon_num]->height - y_mark_offset, stretch_x, stretch_y, sb_round[icon_num], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 23;
|
|
#else
|
|
Draw_ColorPic ((5 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round[icon_num]->height - 4, sb_round[icon_num], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 3;
|
|
#endif
|
|
|
|
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cl.stats[STAT_ROUNDS] >= 100)
|
|
{
|
|
num[2] = (int)(cl.stats[STAT_ROUNDS]/100);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[2]]->height - y_offset, 64, 96, sb_round_num[num[2]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[2]]->height - 4, sb_round_num[num[2]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[2] = 0;
|
|
if (cl.stats[STAT_ROUNDS] >= 10)
|
|
{
|
|
num[1] = (int)((cl.stats[STAT_ROUNDS] - num[2]*100)/10);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[1]]->height - y_offset, 64, 96, sb_round_num[num[1]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[1]]->height - 4, sb_round_num[num[1]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[1] = 0;
|
|
|
|
num[0] = cl.stats[STAT_ROUNDS] - num[2]*100 - num[1]*10;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[0]]->height - y_offset, 64, 96, sb_round_num[num[0]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[0]]->height - 4, sb_round_num[num[0]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width - 8;
|
|
#endif
|
|
}
|
|
}
|
|
else if (cl.stats[STAT_ROUNDCHANGE] == 4)//blink white
|
|
{
|
|
blinking = (float)(((int)(realtime*1000)&510) - 255);
|
|
blinking = abs(blinking);
|
|
if (cl.stats[STAT_ROUNDS] > 0 && cl.stats[STAT_ROUNDS] < 11)
|
|
{
|
|
for (i = 0; i < cl.stats[STAT_ROUNDS]; i++)
|
|
{
|
|
if (i == 4)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic (5*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 1, 1, 1, blinking/255);
|
|
#else
|
|
Draw_ColorPic (5*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 1, 1, 1, blinking/255);
|
|
#endif
|
|
savex = x_offset + 10;
|
|
x_offset = x_offset + 10;
|
|
continue;
|
|
}
|
|
if (i == 9)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + savex/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 1, 1, 1, blinking/255);
|
|
#else
|
|
Draw_ColorPic ((5 + savex/2)*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 1, 1, 1, blinking/255);
|
|
#endif
|
|
continue;
|
|
}
|
|
if (i > 4)
|
|
icon_num = i - 5;
|
|
else
|
|
icon_num = i;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + x_offset/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[icon_num]->height - y_mark_offset, stretch_x, stretch_y, sb_round[icon_num], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 23;
|
|
#else
|
|
Draw_ColorPic ((5 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round[icon_num]->height - 4, sb_round[icon_num], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 3;
|
|
#endif
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cl.stats[STAT_ROUNDS] >= 100)
|
|
{
|
|
num[2] = (int)(cl.stats[STAT_ROUNDS]/100);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[2]]->height - y_offset, 64, 96, sb_round_num[num[2]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[2]]->height - 4, sb_round_num[num[2]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[2] = 0;
|
|
if (cl.stats[STAT_ROUNDS] >= 10)
|
|
{
|
|
num[1] = (int)((cl.stats[STAT_ROUNDS] - num[2]*100)/10);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[1]]->height - y_offset, 64, 96, sb_round_num[num[1]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[1]]->height - 4, sb_round_num[num[1]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[1] = 0;
|
|
|
|
num[0] = cl.stats[STAT_ROUNDS] - num[2]*100 - num[1]*10;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[0]]->height - y_offset, 64, 96, sb_round_num[num[0]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[0]]->height - 4, sb_round_num[num[0]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width - 8;
|
|
#endif
|
|
}
|
|
}
|
|
else if (cl.stats[STAT_ROUNDCHANGE] == 5)//blink white
|
|
{
|
|
if (blinking > 0)
|
|
blinking = blinking - 10;
|
|
if (blinking < 0)
|
|
blinking = 0;
|
|
if (cl.stats[STAT_ROUNDS] > 0 && cl.stats[STAT_ROUNDS] < 11)
|
|
{
|
|
for (i = 0; i < cl.stats[STAT_ROUNDS]; i++)
|
|
{
|
|
if (i == 4)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic (5*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 1, 1, 1, blinking/255);
|
|
#else
|
|
Draw_ColorPic (5*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 1, 1, 1, blinking/255);
|
|
#endif
|
|
savex = x_offset + 10;
|
|
x_offset = x_offset + 10;
|
|
continue;
|
|
}
|
|
if (i == 9)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + savex/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 1, 1, 1, blinking/255);
|
|
#else
|
|
Draw_ColorPic ((5 + savex/2)*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 1, 1, 1, blinking/255);
|
|
#endif
|
|
continue;
|
|
}
|
|
if (i > 4)
|
|
icon_num = i - 5;
|
|
else
|
|
icon_num = i;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + x_offset/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[icon_num]->height - y_mark_offset, stretch_x, stretch_y, sb_round[icon_num], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 23;
|
|
#else
|
|
Draw_ColorPic ((5 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round[icon_num]->height - 4, sb_round[icon_num], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 3;
|
|
#endif
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cl.stats[STAT_ROUNDS] >= 100)
|
|
{
|
|
num[2] = (int)(cl.stats[STAT_ROUNDS]/100);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[2]]->height - y_offset, 64, 96, sb_round_num[num[2]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[2]]->height - 4, sb_round_num[num[2]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[2] = 0;
|
|
if (cl.stats[STAT_ROUNDS] >= 10)
|
|
{
|
|
num[1] = (int)((cl.stats[STAT_ROUNDS] - num[2]*100)/10);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[1]]->height - y_offset, 64, 96, sb_round_num[num[1]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[1]]->height - 4, sb_round_num[num[1]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[1] = 0;
|
|
|
|
num[0] = cl.stats[STAT_ROUNDS] - num[2]*100 - num[1]*10;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[0]]->height - y_offset, 64, 96, sb_round_num[num[0]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[0]]->height - 4, sb_round_num[num[0]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width - 8;
|
|
#endif
|
|
}
|
|
}
|
|
else if (cl.stats[STAT_ROUNDCHANGE] == 6)//blink white while fading back
|
|
{
|
|
color_shift_init = 0;
|
|
blinking = ((int)(realtime*1000)&510) - 255;
|
|
blinking = abs(blinking);
|
|
if (cl.stats[STAT_ROUNDS] > 0 && cl.stats[STAT_ROUNDS] < 11)
|
|
{
|
|
for (i = 0; i < cl.stats[STAT_ROUNDS]; i++)
|
|
{
|
|
if (i == 4)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic (5*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 1, 1, 1, blinking/255);
|
|
#else
|
|
Draw_ColorPic (5*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 1, 1, 1, blinking/255);
|
|
#endif
|
|
savex = x_offset + 10;
|
|
x_offset = x_offset + 10;
|
|
continue;
|
|
}
|
|
if (i == 9)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + savex/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 1, 1, 1, blinking/255);
|
|
#else
|
|
Draw_ColorPic ((5 + savex/2)*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 1, 1, 1, blinking/255);
|
|
#endif
|
|
continue;
|
|
}
|
|
if (i > 4)
|
|
icon_num = i - 5;
|
|
else
|
|
icon_num = i;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + x_offset/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[icon_num]->height - y_mark_offset, stretch_x, stretch_y, sb_round[icon_num], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 23;
|
|
#else
|
|
Draw_ColorPic ((5 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round[icon_num]->height - 4, sb_round[icon_num], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 3;
|
|
#endif
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cl.stats[STAT_ROUNDS] >= 100)
|
|
{
|
|
num[2] = (int)(cl.stats[STAT_ROUNDS]/100);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[2]]->height - y_offset, 64, 96, sb_round_num[num[2]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[2]]->height - 4, sb_round_num[num[2]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[2] = 0;
|
|
if (cl.stats[STAT_ROUNDS] >= 10)
|
|
{
|
|
num[1] = (int)((cl.stats[STAT_ROUNDS] - num[2]*100)/10);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[1]]->height - y_offset, 64, 96, sb_round_num[num[1]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[1]]->height - 4, sb_round_num[num[1]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[1] = 0;
|
|
|
|
num[0] = cl.stats[STAT_ROUNDS] - num[2]*100 - num[1]*10;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[0]]->height - y_offset, 64, 96, sb_round_num[num[0]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[0]]->height - 4, sb_round_num[num[0]], 1, 1, 1, blinking/255);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width - 8;
|
|
#endif
|
|
}
|
|
}
|
|
else if (cl.stats[STAT_ROUNDCHANGE] == 7)//blink white while fading back
|
|
{
|
|
if (!color_shift_init)
|
|
{
|
|
color_shift_end[0] = 107;
|
|
color_shift_end[1] = 1;
|
|
color_shift_end[2] = 0;
|
|
for (i = 0; i < 3; i++)
|
|
{
|
|
color_shift[i] = 255;
|
|
color_shift_steps[i] = (color_shift[i] - color_shift_end[i])/60;
|
|
}
|
|
color_shift_init = 1;
|
|
}
|
|
for (i = 0; i < 3; i++)
|
|
{
|
|
if (color_shift[i] > color_shift_end[i])
|
|
color_shift[i] = color_shift[i] - color_shift_steps[i];
|
|
|
|
if (color_shift[i] < color_shift_end[i])
|
|
color_shift[i] = color_shift_end[i];
|
|
}
|
|
if (cl.stats[STAT_ROUNDS] > 0 && cl.stats[STAT_ROUNDS] < 11)
|
|
{
|
|
for (i = 0; i < cl.stats[STAT_ROUNDS]; i++)
|
|
{
|
|
if (i == 4)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic (5*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#else
|
|
Draw_ColorPic (5*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#endif
|
|
savex = x_offset + 10;
|
|
x_offset = x_offset + 10;
|
|
continue;
|
|
}
|
|
if (i == 9)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + savex/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#else
|
|
Draw_ColorPic ((5 + savex/2)*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
#endif
|
|
continue;
|
|
}
|
|
if (i > 4)
|
|
icon_num = i - 5;
|
|
else
|
|
icon_num = i;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + x_offset/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[icon_num]->height - y_mark_offset, stretch_x, stretch_y, sb_round[icon_num], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 23;
|
|
#else
|
|
Draw_ColorPic ((5 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round[icon_num]->height - 4, sb_round[icon_num], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 3;
|
|
#endif
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cl.stats[STAT_ROUNDS] >= 100)
|
|
{
|
|
num[2] = (int)(cl.stats[STAT_ROUNDS]/100);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[2]]->height - y_offset, 64, 96, sb_round_num[num[2]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[2]]->height - 4, sb_round_num[num[2]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[2] = 0;
|
|
if (cl.stats[STAT_ROUNDS] >= 10)
|
|
{
|
|
num[1] = (int)((cl.stats[STAT_ROUNDS] - num[2]*100)/10);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[1]]->height - y_offset, 64, 96, sb_round_num[num[1]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[1]]->height - 4, sb_round_num[num[1]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[1] = 0;
|
|
|
|
num[0] = cl.stats[STAT_ROUNDS] - num[2]*100 - num[1]*10;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[0]]->height - y_offset, 64, 96, sb_round_num[num[0]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[0]]->height - 4, sb_round_num[num[0]], (color_shift[0]/255), (color_shift[1]/255), (color_shift[2]/255), 1);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width - 8;
|
|
#endif
|
|
}
|
|
}
|
|
else
|
|
{
|
|
color_shift[0] = 107;
|
|
color_shift[1] = 1;
|
|
color_shift[2] = 0;
|
|
color_shift_init = 0;
|
|
alphabling = 0;
|
|
if (cl.stats[STAT_ROUNDS] > 0 && cl.stats[STAT_ROUNDS] < 11)
|
|
{
|
|
for (i = 0; i < cl.stats[STAT_ROUNDS]; i++)
|
|
{
|
|
if (i == 4)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic (5*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 0.4196, 0.004, 0, 1);
|
|
#else
|
|
Draw_ColorPic (5*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 0.4196, 0.004, 0, 1);
|
|
#endif
|
|
savex = x_offset + 10;
|
|
x_offset = x_offset + 10;
|
|
continue;
|
|
}
|
|
if (i == 9)
|
|
{
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + savex/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[4]->height - y_mark_offset, 120, 96, sb_round[4], 0.4196, 0.004, 0, 1);
|
|
#else
|
|
Draw_ColorPic ((5 + savex/2)*(vid.width/2)/272, vid.height - sb_round[4]->height - 4, sb_round[4], 0.4196, 0.004, 0, 1);
|
|
#endif
|
|
continue;
|
|
}
|
|
if (i > 4)
|
|
icon_num = i - 5;
|
|
else
|
|
icon_num = i;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((5 + x_offset/2)*(vid.width/2)/272 + x_mark_offset, vid.height - sb_round[icon_num]->height - y_mark_offset, stretch_x, stretch_y, sb_round[icon_num], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 23;
|
|
#else
|
|
Draw_ColorPic ((5 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round[icon_num]->height - 4, sb_round[icon_num], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round[icon_num]->width + 3;
|
|
#endif
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cl.stats[STAT_ROUNDS] >= 100)
|
|
{
|
|
num[2] = (int)(cl.stats[STAT_ROUNDS]/100);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[2]]->height - y_offset, 64, 96, sb_round_num[num[2]], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[2]]->height - 4, sb_round_num[num[2]], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round_num[num[2]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[2] = 0;
|
|
if (cl.stats[STAT_ROUNDS] >= 10)
|
|
{
|
|
num[1] = (int)((cl.stats[STAT_ROUNDS] - num[2]*100)/10);
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[1]]->height - y_offset, 64, 96, sb_round_num[num[1]], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[1]]->height - 4, sb_round_num[num[1]], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round_num[num[1]]->width - 8;
|
|
#endif
|
|
}
|
|
else
|
|
num[1] = 0;
|
|
|
|
num[0] = cl.stats[STAT_ROUNDS] - num[2]*100 - num[1]*10;
|
|
|
|
if(cl.stats[STAT_ROUNDS] == 0)
|
|
return;
|
|
#ifdef VITA
|
|
Draw_ColorStretchPic ((2 + x_offset/2)*(vid.width/2)/272 - x_offset2, vid.height - sb_round_num[num[0]]->height - y_offset, 64, 96, sb_round_num[num[0]], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width + 25;
|
|
#else
|
|
Draw_ColorPic ((2 + x_offset/2)*(vid.width/2)/272, vid.height - sb_round_num[num[0]]->height - 4, sb_round_num[num[0]], 0.4196, 0.004, 0, 1);
|
|
x_offset = x_offset + sb_round_num[num[0]]->width - 8;
|
|
#endif
|
|
}
|
|
}
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
/*
|
|
===============
|
|
HUD_Perks
|
|
===============
|
|
*/
|
|
#define P_JUG 1
|
|
#define P_DOUBLE 2
|
|
#define P_SPEED 4
|
|
#define P_REVIVE 8
|
|
#define P_FLOP 16
|
|
#define P_STAMIN 32
|
|
#define P_DEAD 64
|
|
#define P_MULE 128
|
|
|
|
int perk_order[9];
|
|
int current_perk_order;
|
|
|
|
void HUD_Perks (void)
|
|
{
|
|
int x, y, scale;
|
|
|
|
#ifdef VITA
|
|
x = 36;
|
|
y = 6;
|
|
scale = 45;
|
|
#else
|
|
x = 26;
|
|
y = 366;
|
|
scale = 26;
|
|
#endif // VITA
|
|
|
|
// Draw second column first -- these need to be
|
|
// overlayed below the first column.
|
|
for (int i = 4; i < 8; i++) {
|
|
if (perk_order[i]) {
|
|
if (perk_order[i] == P_JUG) {Draw_StretchPic(x, y, jugpic, scale, scale);}
|
|
if (perk_order[i] == P_DOUBLE) {Draw_StretchPic(x, y, doublepic, scale, scale);}
|
|
if (perk_order[i] == P_SPEED) {Draw_StretchPic(x, y, speedpic, scale, scale);}
|
|
if (perk_order[i] == P_REVIVE) {Draw_StretchPic(x, y, revivepic, scale, scale);}
|
|
if (perk_order[i] == P_FLOP) {Draw_StretchPic(x, y, floppic, scale, scale);}
|
|
if (perk_order[i] == P_STAMIN) {Draw_StretchPic(x, y, staminpic, scale, scale);}
|
|
if (perk_order[i] == P_DEAD) {Draw_StretchPic(x, y, deadpic, scale, scale);}
|
|
if (perk_order[i] == P_MULE) {Draw_StretchPic(x, y, mulepic, scale, scale);}
|
|
}
|
|
y += scale;
|
|
}
|
|
|
|
#ifdef VITA
|
|
x = 12;
|
|
y = 6;
|
|
#else
|
|
x = 8;
|
|
y = 366;
|
|
#endif // VITA
|
|
|
|
// Now the first column.
|
|
for (int i = 0; i < 4; i++) {
|
|
if (perk_order[i]) {
|
|
if (perk_order[i] == P_JUG) {Draw_StretchPic(x, y, jugpic, scale, scale);}
|
|
if (perk_order[i] == P_DOUBLE) {Draw_StretchPic(x, y, doublepic, scale, scale);}
|
|
if (perk_order[i] == P_SPEED) {Draw_StretchPic(x, y, speedpic, scale, scale);}
|
|
if (perk_order[i] == P_REVIVE) {Draw_StretchPic(x, y, revivepic, scale, scale);}
|
|
if (perk_order[i] == P_FLOP) {Draw_StretchPic(x, y, floppic, scale, scale);}
|
|
if (perk_order[i] == P_STAMIN) {Draw_StretchPic(x, y, staminpic, scale, scale);}
|
|
if (perk_order[i] == P_DEAD) {Draw_StretchPic(x, y, deadpic, scale, scale);}
|
|
if (perk_order[i] == P_MULE) {Draw_StretchPic(x, y, mulepic, scale, scale);}
|
|
}
|
|
y += scale;
|
|
}
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
/*
|
|
===============
|
|
HUD_Powerups
|
|
===============
|
|
*/
|
|
void HUD_Powerups (void)
|
|
{
|
|
int count;
|
|
|
|
// horrible way to offset check :)))))))))))))))))) :DDDDDDDD XOXO
|
|
|
|
if (cl.stats[STAT_X2])
|
|
count++;
|
|
|
|
if (cl.stats[STAT_INSTA])
|
|
count++;
|
|
|
|
// both are avail draw fixed order
|
|
if (count == 2) {
|
|
#ifdef VITA
|
|
Draw_StretchPic(422, 480, x2pic, 64, 64);
|
|
Draw_StretchPic(480, 480, instapic, 64, 64);
|
|
#else
|
|
Draw_StretchPic(277, 678, x2pic, 32, 32);
|
|
Draw_StretchPic(317, 678, instapic, 32, 32);
|
|
#endif // VITA
|
|
} else {
|
|
if (cl.stats[STAT_X2])
|
|
#ifdef VITA
|
|
Draw_StretchPic(451, 480, x2pic, 64, 64);
|
|
#else
|
|
Draw_StretchPic(306, 678, x2pic, 32, 32);
|
|
#endif // VITA
|
|
if(cl.stats[STAT_INSTA])
|
|
#ifdef VITA
|
|
Draw_StretchPic(451, 480, instapic, 64, 64);
|
|
#else
|
|
Draw_StretchPic(306, 678, instapic, 32, 32);
|
|
#endif // VITA
|
|
}
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
|
|
/*
|
|
===============
|
|
HUD_ProgressBar
|
|
===============
|
|
*/
|
|
void HUD_ProgressBar (void)
|
|
{
|
|
float progressbar;
|
|
|
|
if (cl.progress_bar)
|
|
{
|
|
progressbar = 100 - ((cl.progress_bar-sv.time)*10);
|
|
if (progressbar >= 100)
|
|
progressbar = 100;
|
|
Draw_FillByColor ((vid.width)/4 - 51, vid.height/2 + (vid.height/2)*0.75 - 1, 102, 5, 0, 0, 0, 100/255.0);
|
|
Draw_FillByColor ((vid.width)/4 - 50, vid.height/2 + (vid.height/2)*0.75, progressbar, 3, 1, 0, 0, 100/255.0);
|
|
|
|
Draw_String ((vid.width/2 - (88))/2, vid.height/2 + (vid.height/2)*0.75 + 10, "Reviving...");
|
|
}
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
/*
|
|
===============
|
|
HUD_Achievement
|
|
|
|
Achievements based on code by Arkage
|
|
===============
|
|
*/
|
|
|
|
#ifdef VITA
|
|
int achievement; // the background image
|
|
int achievement_unlocked;
|
|
char achievement_text[MAX_QPATH];
|
|
double achievement_time;
|
|
float smallsec;
|
|
int ach_pic;
|
|
|
|
void HUD_Achievement (void)
|
|
{
|
|
|
|
if (achievement_unlocked == 1)
|
|
{
|
|
|
|
smallsec = smallsec + 0.4;
|
|
if (smallsec >= 30)
|
|
smallsec = 30;
|
|
//Background image
|
|
//Sbar_DrawPic (176, 5, achievement);
|
|
// The achievement text
|
|
Draw_AlphaStretchPic (30, smallsec, 200, 100, 255, achievement_list[ach_pic].img);
|
|
}
|
|
|
|
// Reset the achievement
|
|
if (Sys_DoubleTime() >= achievement_time)
|
|
{
|
|
achievement_unlocked = 0;
|
|
}
|
|
|
|
}
|
|
|
|
void HUD_Parse_Achievement (int ach)
|
|
{
|
|
if (achievement_list[ach].unlocked)
|
|
return;
|
|
|
|
achievement_unlocked = 1;
|
|
smallsec = 0;
|
|
achievement_time = Sys_DoubleTime() + 10;
|
|
ach_pic = ach;
|
|
achievement_list[ach].unlocked = 1;
|
|
Save_Achivements();
|
|
}
|
|
#endif
|
|
//=============================================================================
|
|
|
|
/*
|
|
===============
|
|
HUD_Ammo
|
|
===============
|
|
*/
|
|
|
|
int GetLowAmmo(int weapon, int type)
|
|
{
|
|
switch (weapon)
|
|
{
|
|
case W_COLT: if (type) return 2; else return 16;
|
|
case W_KAR: if (type) return 1; else return 10;
|
|
case W_KAR_SCOPE: if (type) return 1; else return 10;
|
|
case W_M1A1: if (type) return 4; else return 24;
|
|
case W_SAWNOFF: if (type) return 1; else return 12;
|
|
case W_DB: if (type) return 1; else return 12;
|
|
case W_THOMPSON: if (type) return 6; else return 40;
|
|
case W_BAR: if (type) return 6; else return 28;
|
|
default: return 0;
|
|
}
|
|
}
|
|
|
|
int IsDualWeapon(int weapon)
|
|
{
|
|
switch(weapon) {
|
|
case W_BIATCH:
|
|
case W_SNUFF:
|
|
return 1;
|
|
default:
|
|
return 0;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
void HUD_Ammo (void)
|
|
{
|
|
char* magstring;
|
|
int reslen;
|
|
|
|
#ifdef VITA
|
|
|
|
float scale = 2.0f;
|
|
y_value = vid.height - 36;
|
|
x_value = 860;
|
|
|
|
#else
|
|
|
|
float scale = 1.25f;
|
|
y_value = vid.height - 3 - fragpic->height;
|
|
x_value = 575;
|
|
|
|
#endif // VITA
|
|
|
|
reslen = strlen(va("/%i", cl.stats[STAT_AMMO]));
|
|
|
|
//
|
|
// Magazine
|
|
//
|
|
magstring = va("%i", cl.stats[STAT_CURRENTMAG]);
|
|
if (GetLowAmmo(cl.stats[STAT_ACTIVEWEAPON], 1) >= cl.stats[STAT_CURRENTMAG]) {
|
|
Draw_ColoredStringScale((x_value - (reslen*8*scale)) - strlen(magstring)*8*scale, y_value, magstring, 1, 0, 0, 1, scale);
|
|
} else {
|
|
Draw_ColoredStringScale((x_value - (reslen*8*scale)) - strlen(magstring)*8*scale, y_value, magstring, 1, 1, 1, 1, scale);
|
|
}
|
|
|
|
//
|
|
// Reserve Ammo
|
|
//
|
|
magstring = va("/%i", cl.stats[STAT_AMMO]);
|
|
if (GetLowAmmo(cl.stats[STAT_ACTIVEWEAPON], 0) >= cl.stats[STAT_AMMO]) {
|
|
Draw_ColoredStringScale(x_value - strlen(magstring)*8*scale, y_value, magstring, 1, 0, 0, 1, scale);
|
|
} else {
|
|
Draw_ColoredStringScale(x_value - strlen(magstring)*8*scale, y_value, magstring, 1, 1, 1, 1, scale);
|
|
}
|
|
|
|
//
|
|
// Second Magazine
|
|
//
|
|
if (IsDualWeapon(cl.stats[STAT_ACTIVEWEAPON])) {
|
|
magstring = va("%i", cl.stats[STAT_CURRENTMAG2]);
|
|
if (GetLowAmmo(cl.stats[STAT_ACTIVEWEAPON], 0) >= cl.stats[STAT_CURRENTMAG2]) {
|
|
Draw_ColoredStringScale(x_value - 34*scale - strlen(magstring)*8*scale, y_value, magstring, 1, 0, 0, 1, scale);
|
|
} else {
|
|
Draw_ColoredStringScale(x_value - 34*scale - strlen(magstring)*8*scale, y_value, magstring, 1, 1, 1, 1, scale);
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
===============
|
|
HUD_AmmoString
|
|
===============
|
|
*/
|
|
|
|
void HUD_AmmoString (void)
|
|
{
|
|
int len = 0;
|
|
|
|
if (GetLowAmmo(cl.stats[STAT_ACTIVEWEAPON], 1) >= cl.stats[STAT_CURRENTMAG])
|
|
{
|
|
if (0 < cl.stats[STAT_AMMO] && cl.stats[STAT_CURRENTMAG] >= 0) {
|
|
#ifdef VITA
|
|
Draw_ColoredStringScale ((vid.width)/2 - 43, (vid.height)/2 + 34, "Reload", 1, 1, 1, 1, 2.0f);
|
|
#else
|
|
Draw_String ((vid.width)/4, (vid.height)*3/4 + 40, "Reload");
|
|
#endif
|
|
} else if (0 < cl.stats[STAT_CURRENTMAG]) {
|
|
#ifdef VITA
|
|
Draw_ColoredStringScale ((vid.width)/2 - 73, (vid.height)/2 + 34, "LOW AMMO", 1, 1, 0, 1, 2.5f);
|
|
#else
|
|
Draw_ColoredString ((vid.width/2 - len*8)/2, (vid.height)*3/4 + 40, "LOW AMMO", 1, 1, 0, 1);
|
|
#endif
|
|
} else {
|
|
#ifdef VITA
|
|
Draw_ColoredStringScale ((vid.width)/2 - 66, (vid.height)/2 + 34, "NO AMMO", 1, 0, 0, 1, 2.5f);
|
|
#else
|
|
Draw_ColoredString ((vid.width/2 - len*8)/2, (vid.height)*3/4 + 40, "NO AMMO", 1, 0, 0, 1);
|
|
#endif
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
/*
|
|
===============
|
|
HUD_Grenades
|
|
===============
|
|
*/
|
|
#define UI_FRAG 1
|
|
#define UI_BETTY 2
|
|
|
|
void HUD_Grenades (void)
|
|
{
|
|
if (cl.stats[STAT_GRENADES])
|
|
{
|
|
#ifdef VITA
|
|
x_value = vid.width - bettypic->width - 70;
|
|
y_value = vid.height - 40 - fragpic->height;
|
|
#else
|
|
x_value = vid.width/2 - 40;
|
|
y_value = vid.height - 16 - fragpic->height;
|
|
#endif
|
|
}
|
|
if (cl.stats[STAT_GRENADES] & UI_FRAG)
|
|
{
|
|
#ifdef VITA
|
|
Draw_StretchPic (x_value, y_value, fragpic, 64, 64);
|
|
if (cl.stats[STAT_PRIGRENADES] <= 0)
|
|
Draw_ColoredStringScale (x_value + 36, y_value + 44, va ("%i",cl.stats[STAT_PRIGRENADES]), 1, 0, 0, 1, 2.0f);
|
|
else
|
|
Draw_ColoredStringScale (x_value + 36, y_value + 44, va ("%i",cl.stats[STAT_PRIGRENADES]), 1, 1, 1, 1, 2.0f);
|
|
#else
|
|
Draw_StretchPic (x_value - 24, y_value, fragpic, 26, 26);
|
|
if (cl.stats[STAT_PRIGRENADES] <= 0)
|
|
Draw_ColoredStringScale (x_value + 15 - 24, y_value + 18, va ("%i",cl.stats[STAT_PRIGRENADES]), 1, 0, 0, 1, 1.25f);
|
|
else
|
|
Draw_ColoredStringScale (x_value + 15 - 24, y_value + 18, va ("%i",cl.stats[STAT_PRIGRENADES]), 1, 1, 1, 1, 1.25f);
|
|
#endif
|
|
}
|
|
if (cl.stats[STAT_GRENADES] & UI_BETTY)
|
|
{
|
|
#ifdef VITA
|
|
Draw_StretchPic (x_value + fragpic->width + 15, y_value, bettypic, 64, 64);
|
|
if (cl.stats[STAT_SECGRENADES] <= 0) {
|
|
Draw_ColoredStringScale (x_value + 46, y_value + 44, va ("%i",cl.stats[STAT_SECGRENADES]), 1, 0, 0, 1, 2.0f);
|
|
} else {
|
|
Draw_ColoredStringScale (x_value + fragpic->width + 46, y_value + 44, va ("%i",cl.stats[STAT_SECGRENADES]), 1, 1, 1, 1, 2.0f);
|
|
}
|
|
#else
|
|
Draw_StretchPic (x_value, y_value, bettypic, 26, 26);
|
|
if (cl.stats[STAT_SECGRENADES] <= 0) {
|
|
Draw_ColoredStringScale (x_value + 15, y_value + 18, va ("%i",cl.stats[STAT_SECGRENADES]), 1, 0, 0, 1, 1.25f);
|
|
} else {
|
|
Draw_ColoredStringScale (x_value + 15, y_value + 18, va ("%i",cl.stats[STAT_SECGRENADES]), 1, 1, 1, 1, 1.25f);
|
|
}
|
|
#endif
|
|
}
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
/*
|
|
===============
|
|
HUD_Weapon
|
|
===============
|
|
*/
|
|
|
|
|
|
char *GetWeaponName (int wep)
|
|
{
|
|
switch (wep)
|
|
{
|
|
case W_COLT:
|
|
return "Colt M1911";
|
|
case W_BIATCH:
|
|
return "Mustang & Sally";
|
|
case W_KAR:
|
|
return "Kar 98k";
|
|
case W_ARMAGEDDON:
|
|
return "Armageddon";
|
|
case W_THOMPSON:
|
|
return "Thompson";
|
|
case W_GIBS:
|
|
return "Gibs-O-Matic";
|
|
case W_357:
|
|
return ".357 Magnum";
|
|
case W_KILLU:
|
|
return ".357 Plus 1 K1L-u";
|
|
case W_BAR:
|
|
return "BAR";
|
|
case W_WIDOW:
|
|
return "The Widow Maker";
|
|
case W_BK:
|
|
return "Ballistic Knife";
|
|
case W_BROWNING:
|
|
return "Browning M1919";
|
|
case W_ACCELERATOR:
|
|
return "B115 Accelerator";
|
|
case W_DB:
|
|
return "Double-Barreled Shotgun";
|
|
case W_BORE:
|
|
return "24 Bore Long Range";
|
|
case W_FG:
|
|
return "FG42";
|
|
case W_IMPELLER:
|
|
return "420 Impeller";
|
|
case W_GEWEHR:
|
|
return "Gewehr 43";
|
|
case W_COMPRESSOR:
|
|
return "G115 Compressor";
|
|
case W_KAR_SCOPE:
|
|
return "Scoped Kar 98k";
|
|
case W_HEADCRACKER:
|
|
return "Headcracker";
|
|
case W_M1:
|
|
return "M1 Garand";
|
|
case W_M1000:
|
|
return "M1000";
|
|
case W_M1A1:
|
|
return "M1A1 Carbine";
|
|
case W_WIDDER:
|
|
return "Widdershins RC-1";
|
|
case W_M2:
|
|
return "M2 Flamethrower";
|
|
case W_FIW:
|
|
return "F1W Nitrogen Cooled";
|
|
case W_MP40:
|
|
return "MP40";
|
|
case W_AFTERBURNER:
|
|
return "The Afterburner";
|
|
case W_MG:
|
|
return "MG42";
|
|
case W_BARRACUDA:
|
|
return "Barracuda FU-A11";
|
|
case W_PANZER:
|
|
return "Panzerschrek";
|
|
case W_LONGINUS:
|
|
return "Longinus";
|
|
case W_PPSH:
|
|
return "PPSh-41";
|
|
case W_REAPER:
|
|
return "The Reaper";
|
|
case W_PTRS:
|
|
return "PTRS-41";
|
|
case W_PENETRATOR:
|
|
return "The Penetrator";
|
|
case W_RAY:
|
|
return "Ray Gun";
|
|
case W_PORTER:
|
|
return "Porter's X2 Ray Gun";
|
|
case W_SAWNOFF:
|
|
return "Sawnoff shotgun";
|
|
case W_SNUFF:
|
|
return "The Snuff Box";
|
|
case W_STG:
|
|
return "STG-44";
|
|
case W_SPATZ:
|
|
return "Spatz-447 +";
|
|
case W_TRENCH:
|
|
return "M1897 Trench Gun";
|
|
case W_GUT:
|
|
return "Gut Shot";
|
|
case W_TYPE:
|
|
return "Type 100";
|
|
case W_SAMURAI:
|
|
return "1001 Samurais";
|
|
case W_TESLA:
|
|
return "Wunderwaffe DG-2";
|
|
default:
|
|
return " ";
|
|
}
|
|
}
|
|
|
|
extern char *pr_strings;
|
|
void HUD_Weapon (void)
|
|
{
|
|
char str[32];
|
|
float l;
|
|
#ifdef VITA
|
|
y_value = 480;
|
|
#else
|
|
y_value = vid.height - 16 - fragpic->height;
|
|
#endif
|
|
strcpy(str, pr_strings+sv_player->v.Weapon_Name);
|
|
//strcpy(str, GetWeaponName(cl.stats[STAT_ACTIVEWEAPON]));
|
|
l = strlen(str);
|
|
#ifdef VITA
|
|
x_value = vid.width - fragpic->width - 65 - l*16;
|
|
Draw_ColoredStringScale (x_value, y_value, str, 1, 1, 1, 1, 2.0f);
|
|
#else
|
|
x_value = vid.width/2 - 63 - l*10;
|
|
Draw_ColoredStringScale (x_value, y_value, str, 1, 1, 1, 1, 1.25f);
|
|
#endif
|
|
}
|
|
|
|
//=============================================================================
|
|
|
|
|
|
void HUD_Draw (void) {
|
|
if (key_dest == key_menu_pause || paused_hack == true || m_state == m_exit) {
|
|
return;
|
|
}
|
|
|
|
GL_SetCanvas(CANVAS_USEPRINT);
|
|
|
|
if (waypoint_mode.value) {
|
|
#ifndef VITA
|
|
Draw_ColoredStringScale(475, 364, "WAYPOINT MODE", 1, 1, 1, 1, 1.5f);
|
|
Draw_ColoredStringScale(329, 382, "FIRE to Create Waypoint", 1, 1, 1, 1, 1.5f);
|
|
Draw_ColoredStringScale(329, 395, "USE to Select Waypoint", 1, 1, 1, 1, 1.5f);
|
|
Draw_ColoredStringScale(329, 408, "AIM to Link Waypoint", 1, 1, 1, 1, 1.5f);
|
|
Draw_ColoredStringScale(329, 421, "KNIFE to Remove Waypoint", 1, 1, 1, 1, 1.5f);
|
|
Draw_ColoredStringScale(329, 434, "SWITCH to Move Waypoint", 1, 1, 1, 1, 1.5f);
|
|
Draw_ColoredStringScale(329, 447, "RELOAD to Evolve Waypoint", 1, 1, 1, 1, 1.5f);
|
|
#else
|
|
Draw_ColoredStringScale(741, 4, "WAYPOINT MODE", 1, 1, 1, 1, 2.0f);
|
|
Draw_ColoredStringScale(549, 29, "FIRE to Create Waypoint", 1, 1, 1, 1, 2.0f);
|
|
Draw_ColoredStringScale(549, 49, "USE to Select Waypoint", 1, 1, 1, 1, 2.0f);
|
|
Draw_ColoredStringScale(549, 69, "AIM to Link Waypoint", 1, 1, 1, 1, 2.0f);
|
|
Draw_ColoredStringScale(549, 89, "KNIFE to Remove Waypoint", 1, 1, 1, 1, 2.0f);
|
|
Draw_ColoredStringScale(549, 109, "SWITCH to Move Waypoint", 1, 1, 1, 1, 2.0f);
|
|
Draw_ColoredStringScale(549, 129, "RELOAD to Evolve Waypoint", 1, 1, 1, 1, 2.0f);
|
|
#endif
|
|
return;
|
|
}
|
|
|
|
if (cl.stats[STAT_HEALTH] <= 0)
|
|
{
|
|
HUD_EndScreen ();
|
|
return;
|
|
}
|
|
|
|
HUD_Blood();
|
|
HUD_Rounds();
|
|
HUD_Perks();
|
|
HUD_Powerups();
|
|
HUD_ProgressBar();
|
|
if ((HUD_Change_time > Sys_DoubleTime() || GetLowAmmo(cl.stats[STAT_ACTIVEWEAPON], 1) >= cl.stats[STAT_CURRENTMAG] || GetLowAmmo(cl.stats[STAT_ACTIVEWEAPON], 0) >= cl.stats[STAT_AMMO]) && cl.stats[STAT_HEALTH] >= 20)
|
|
{ //these elements are only drawn when relevant for few seconds
|
|
HUD_Ammo();
|
|
HUD_Grenades();
|
|
HUD_Weapon();
|
|
HUD_AmmoString();
|
|
}
|
|
HUD_Points();
|
|
HUD_Point_Change();
|
|
#ifdef VITA
|
|
HUD_Achievement();
|
|
#endif
|
|
|
|
if (domaxammo == true) {
|
|
if (maxammoopac <= 0) {
|
|
maxammoopac = 255;
|
|
maxammoy = 150;
|
|
}
|
|
HUD_MaxAmmo();
|
|
}
|
|
|
|
GL_SetCanvas(CANVAS_DEFAULT);
|
|
} |