mirror of
https://github.com/nzp-team/glquake.git
synced 2024-11-25 05:21:33 +00:00
Partial hud implementation
This commit is contained in:
parent
e49548ff5a
commit
d97e3fcea2
10 changed files with 156 additions and 128 deletions
BIN
nzportable.3dsx
BIN
nzportable.3dsx
Binary file not shown.
BIN
nzportable.elf
BIN
nzportable.elf
Binary file not shown.
|
@ -1152,8 +1152,8 @@ void HUD_ProgressBar (void)
|
|||
progressbar = 100 - ((cl.progress_bar-sv.time)*10);
|
||||
if (progressbar >= 100)
|
||||
progressbar = 100;
|
||||
Draw_FillByColor ((vid.width)/2 - 51, vid.height*0.75 - 1, 102, 5, GU_RGBA(0, 0, 0,100));
|
||||
Draw_FillByColor ((vid.width)/2 - 50, vid.height*0.75, progressbar, 3, GU_RGBA(255, 255, 255,100));
|
||||
Draw_FillByColor ((vid.width)/2 - 51, vid.height*0.75 - 1, 102, 5, 0, 0, 0,100);
|
||||
Draw_FillByColor ((vid.width)/2 - 50, vid.height*0.75, progressbar, 3, 255, 255, 255,100);
|
||||
|
||||
Draw_String ((vid.width - (88))/2, vid.height*0.75 + 10, "Reviving...");
|
||||
}
|
||||
|
@ -1391,27 +1391,27 @@ void HUD_Draw (void)
|
|||
return;
|
||||
}
|
||||
|
||||
// HUD_Blood();
|
||||
// HUD_Rounds();
|
||||
// HUD_Perks();
|
||||
// HUD_Powerups();
|
||||
// HUD_ProgressBar();
|
||||
// if ((HUD_Change_time > Sys_FloatTime() || 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();
|
||||
// HUD_Achievement();
|
||||
//
|
||||
// if (domaxammo == true) {
|
||||
// if (maxammoopac <= 0) {
|
||||
// maxammoopac = 255;
|
||||
// maxammoy = 250;
|
||||
// }
|
||||
// HUD_MaxAmmo();
|
||||
// }
|
||||
HUD_Blood();
|
||||
HUD_Rounds();
|
||||
HUD_Perks();
|
||||
HUD_Powerups();
|
||||
HUD_ProgressBar();
|
||||
if ((HUD_Change_time > Sys_FloatTime() || 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();
|
||||
HUD_Achievement();
|
||||
|
||||
if (domaxammo == true) {
|
||||
if (maxammoopac <= 0) {
|
||||
maxammoopac = 255;
|
||||
maxammoy = 250;
|
||||
}
|
||||
HUD_MaxAmmo();
|
||||
}
|
||||
}
|
|
@ -35,7 +35,7 @@ void Draw_ConsoleBackground (int lines);
|
|||
void Draw_BeginDisc (void);
|
||||
void Draw_EndDisc (void);
|
||||
void Draw_TileClear (int x, int y, int w, int h);
|
||||
void Draw_Fill (int x, int y, int w, int h, int c);
|
||||
void Draw_Fill (int x, int y, int w, int h, int r, int g, int b);
|
||||
void Draw_FadeScreen (void);
|
||||
void Draw_String (int x, int y, char *str);
|
||||
void Draw_ColoredString(int x, int y, char *text, float r, float g, float b, float a, int scale);
|
||||
|
|
127
source/gl_draw.c
127
source/gl_draw.c
|
@ -610,6 +610,56 @@ void Draw_Character (int x, int y, int num)
|
|||
glEnd ();
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
Draw_CharacterRGBA
|
||||
|
||||
This is the same as Draw_Character, but with RGBA color codes.
|
||||
- MotoLegacy
|
||||
================
|
||||
*/
|
||||
extern cvar_t scr_coloredtext;
|
||||
void Draw_CharacterRGBA(int x, int y, int num, float r, float g, float b, float a)
|
||||
{
|
||||
byte *dest;
|
||||
byte *source;
|
||||
unsigned short *pusdest;
|
||||
int drawline;
|
||||
int row, col;
|
||||
float frow, fcol, size;
|
||||
|
||||
if (num == 32)
|
||||
return; // space
|
||||
|
||||
num &= 255;
|
||||
|
||||
if (y <= -8)
|
||||
return; // totally off screen
|
||||
|
||||
row = num>>4;
|
||||
col = num&15;
|
||||
|
||||
frow = row*0.0625;
|
||||
fcol = col*0.0625;
|
||||
size = 0.0625;
|
||||
|
||||
Con_Printf("");
|
||||
//glColor4f(r/255, g/255, b/255, a/255);
|
||||
|
||||
GL_Bind (char_texture);
|
||||
|
||||
glBegin (GL_QUADS);
|
||||
glTexCoord2f (fcol, frow);
|
||||
glVertex2f (x, y);
|
||||
glTexCoord2f (fcol + size, frow);
|
||||
glVertex2f (x+8, y);
|
||||
glTexCoord2f (fcol + size, frow + size);
|
||||
glVertex2f (x+8, y+8);
|
||||
glTexCoord2f (fcol, frow + size);
|
||||
glVertex2f (x, y+8);
|
||||
glEnd ();
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
Draw_String
|
||||
|
@ -688,7 +738,60 @@ Draw_Pic
|
|||
*/
|
||||
void Draw_Pic (int x, int y, qpic_t *pic)
|
||||
{
|
||||
Draw_ColorPic (x, y, pic, 255, 255, 255, 255);
|
||||
//Draw_ColorPic (x, y, pic, 255, 255, 255, 255);
|
||||
|
||||
byte *dest, *source;
|
||||
unsigned short *pusdest;
|
||||
int v, u;
|
||||
glpic_t *gl;
|
||||
|
||||
|
||||
if (scrap_dirty)
|
||||
Scrap_Upload ();
|
||||
gl = (glpic_t *)pic->data;
|
||||
glColor4f (1,1,1,1);
|
||||
GL_Bind (gl->texnum);
|
||||
glBegin (GL_QUADS);
|
||||
glTexCoord2f (gl->sl, gl->tl);
|
||||
glVertex2f (x, y);
|
||||
glTexCoord2f (gl->sh, gl->tl);
|
||||
glVertex2f (x+pic->width, y);
|
||||
glTexCoord2f (gl->sh, gl->th);
|
||||
glVertex2f (x+pic->width, y+pic->height);
|
||||
glTexCoord2f (gl->sl, gl->th);
|
||||
glVertex2f (x, y+pic->height);
|
||||
glEnd ();
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
Draw_StretchPic
|
||||
=============
|
||||
*/
|
||||
void Draw_StretchPic (int x, int y, qpic_t *pic, int x_value, int y_value)
|
||||
{
|
||||
// naievil -- fixme This does not stretch
|
||||
byte *dest, *source;
|
||||
unsigned short *pusdest;
|
||||
int v, u;
|
||||
glpic_t *gl;
|
||||
|
||||
if (scrap_dirty)
|
||||
Scrap_Upload ();
|
||||
gl = (glpic_t *)pic->data;
|
||||
glColor4f (1,1,1,1);
|
||||
GL_Bind (gl->texnum);
|
||||
glBegin (GL_QUADS);
|
||||
glTexCoord2f (gl->sl, gl->tl);
|
||||
glVertex2f (x, y);
|
||||
glTexCoord2f (gl->sh, gl->tl);
|
||||
glVertex2f (x+pic->width, y);
|
||||
glTexCoord2f (gl->sh, gl->th);
|
||||
glVertex2f (x+pic->width, y+pic->height);
|
||||
glTexCoord2f (gl->sl, gl->th);
|
||||
glVertex2f (x, y+pic->height);
|
||||
glEnd ();
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -833,6 +936,18 @@ void Draw_TileClear (int x, int y, int w, int h)
|
|||
glEnd ();
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
Draw_FillByColor
|
||||
|
||||
Fills a box of pixels with a single color
|
||||
=============
|
||||
*/
|
||||
void Draw_FillByColor (int x, int y, int w, int h, int r, int g, int b)
|
||||
{
|
||||
// naievil -- fixme does not do any color mod
|
||||
Draw_Fill(x, y, w, h, r, g, b);
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
|
@ -841,12 +956,10 @@ Draw_Fill
|
|||
Fills a box of pixels with a single color
|
||||
=============
|
||||
*/
|
||||
void Draw_Fill (int x, int y, int w, int h, int c)
|
||||
void Draw_Fill (int x, int y, int w, int h, int r, int g, int b)
|
||||
{
|
||||
glDisable (GL_TEXTURE_2D);
|
||||
glColor3f (host_basepal[c*3]/255.0,
|
||||
host_basepal[c*3+1]/255.0,
|
||||
host_basepal[c*3+2]/255.0);
|
||||
glColor3f (r/255, g/255, b/255);
|
||||
|
||||
glBegin (GL_QUADS);
|
||||
|
||||
|
@ -1120,8 +1233,8 @@ Draw_Crosshair
|
|||
|
||||
extern float crosshair_opacity;
|
||||
void Draw_Crosshair (void)
|
||||
{
|
||||
if (cl.stats[STAT_HEALTH] < 20)
|
||||
{
|
||||
if (cl.stats[STAT_HEALTH] < 20)
|
||||
return;
|
||||
|
||||
if (!crosshair_opacity)
|
||||
|
|
|
@ -700,96 +700,6 @@ void DrawGLPolyLightmap (glpoly_t *p)
|
|||
glEnd ();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
================
|
||||
R_BlendLightmaps
|
||||
================
|
||||
*/
|
||||
/*
|
||||
void R_BlendLightmaps (void)
|
||||
{
|
||||
int i, j;
|
||||
glpoly_t *p;
|
||||
float *v;
|
||||
glRect_t *theRect;
|
||||
|
||||
if (r_fullbright.value)
|
||||
return;
|
||||
if (!gl_texsort.value)
|
||||
return;
|
||||
|
||||
glDepthMask (0); // don't bother writing Z
|
||||
|
||||
if (gl_lightmap_format == GL_LUMINANCE)
|
||||
glBlendFunc (GL_ZERO, GL_ONE_MINUS_SRC_COLOR);
|
||||
else if (gl_lightmap_format == GL_INTENSITY)
|
||||
{
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glColor4f (0,0,0,1);
|
||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
|
||||
if (!r_lightmap.value)
|
||||
{
|
||||
glEnable (GL_BLEND);
|
||||
}
|
||||
|
||||
for (i=0 ; i<MAX_LIGHTMAPS ; i++)
|
||||
{
|
||||
p = lightmap_polys[i];
|
||||
if (!p)
|
||||
continue;
|
||||
GL_Bind(lightmap_textures+i);
|
||||
if (lightmap_modified[i])
|
||||
{
|
||||
lightmap_modified[i] = false;
|
||||
theRect = &lightmap_rectchange[i];
|
||||
// glTexImage2D (GL_TEXTURE_2D, 0, lightmap_bytes
|
||||
// , BLOCK_WIDTH, BLOCK_HEIGHT, 0,
|
||||
// gl_lightmap_format, GL_UNSIGNED_BYTE, lightmaps+i*BLOCK_WIDTH*BLOCK_HEIGHT*lightmap_bytes);
|
||||
// glTexImage2D (GL_TEXTURE_2D, 0, lightmap_bytes
|
||||
// , BLOCK_WIDTH, theRect->h, 0,
|
||||
// gl_lightmap_format, GL_UNSIGNED_BYTE, lightmaps+(i*BLOCK_HEIGHT+theRect->t)*BLOCK_WIDTH*lightmap_bytes);
|
||||
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, theRect->t,
|
||||
BLOCK_WIDTH, theRect->h, gl_lightmap_format, GL_UNSIGNED_BYTE,
|
||||
lightmaps+(i* BLOCK_HEIGHT + theRect->t) *BLOCK_WIDTH*lightmap_bytes);
|
||||
theRect->l = BLOCK_WIDTH;
|
||||
theRect->t = BLOCK_HEIGHT;
|
||||
theRect->h = 0;
|
||||
theRect->w = 0;
|
||||
}
|
||||
for ( ; p ; p=p->chain)
|
||||
{
|
||||
if (p->flags & SURF_UNDERWATER)
|
||||
DrawGLWaterPolyLightmap (p);
|
||||
else
|
||||
{
|
||||
glBegin (GL_POLYGON);
|
||||
v = p->verts[0];
|
||||
for (j=0 ; j<p->numverts ; j++, v+= VERTEXSIZE)
|
||||
{
|
||||
glTexCoord2f (v[5], v[6]);
|
||||
glVertex3fv (v);
|
||||
}
|
||||
glEnd ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
glDisable (GL_BLEND);
|
||||
if (gl_lightmap_format == GL_LUMINANCE)
|
||||
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
else if (gl_lightmap_format == GL_INTENSITY)
|
||||
{
|
||||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
glColor4f (1,1,1,1);
|
||||
}
|
||||
|
||||
glDepthMask (1); // back to normal Z buffering
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
================
|
||||
R_BlendLightmaps
|
||||
|
|
|
@ -97,6 +97,7 @@ extern cvar_t crosshair;
|
|||
|
||||
qboolean scr_initialized; // ready to draw
|
||||
|
||||
qpic_t *hitmark;
|
||||
qpic_t *scr_ram;
|
||||
qpic_t *scr_net;
|
||||
qpic_t *scr_turtle;
|
||||
|
@ -463,7 +464,7 @@ void SCR_DrawUseString (void)
|
|||
l = strlen (scr_usestring);
|
||||
x = (vid.width - l*8)/2;
|
||||
|
||||
// naievil -- fixme
|
||||
// naievil -- fixme the picture does not show...
|
||||
Draw_String (x, y, scr_usestring);
|
||||
Draw_Pic (x + button_pic_x*8, y, GetButtonIcon("+use"));
|
||||
}
|
||||
|
@ -653,10 +654,14 @@ void SCR_Init (void)
|
|||
Cmd_AddCommand ("sizeup",SCR_SizeUp_f);
|
||||
Cmd_AddCommand ("sizedown",SCR_SizeDown_f);
|
||||
|
||||
// naievil -- fixme remove this
|
||||
scr_ram = Draw_PicFromWad ("ram");
|
||||
scr_net = Draw_PicFromWad ("net");
|
||||
scr_turtle = Draw_PicFromWad ("turtle");
|
||||
|
||||
hitmark = Draw_CachePic("gfx/hud/hit_marker");
|
||||
|
||||
|
||||
scr_initialized = true;
|
||||
}
|
||||
|
||||
|
@ -1288,7 +1293,7 @@ void SCR_UpdateScreen (void)
|
|||
GL_Set2D ();
|
||||
|
||||
// naievil -- fixme
|
||||
//Draw_Crosshair ();
|
||||
Draw_Crosshair ();
|
||||
|
||||
//muff - to show FPS on screen
|
||||
SCR_DrawFPS ();
|
||||
|
|
|
@ -171,8 +171,6 @@ static void Check_Gamma (unsigned char *pal)
|
|||
else
|
||||
vid_gamma = Q_atof(com_argv[i+1]);
|
||||
|
||||
Con_Printf("in check_gamma: %f\n", vid_gamma);
|
||||
|
||||
for (i=0 ; i<768 ; i++)
|
||||
{
|
||||
f = pow ( (pal[i]+1)/256.0 , vid_gamma );
|
||||
|
|
|
@ -23,6 +23,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#include "winquake.h"
|
||||
#endif
|
||||
|
||||
achievement_list_t achievement_list[MAX_ACHIEVEMENTS];
|
||||
|
||||
void (*vid_menudrawfn)(void);
|
||||
void (*vid_menukeyfn)(int key);
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ cvar_t v_ipitch_level = {"v_ipitch_level", "0.3", false};
|
|||
|
||||
cvar_t v_idlescale = {"v_idlescale", "0", false};
|
||||
|
||||
cvar_t crosshair = {"crosshair", "0", true};
|
||||
cvar_t crosshair = {"crosshair", "1", true};
|
||||
|
||||
cvar_t gl_cshiftpercent = {"gl_cshiftpercent", "100", false}; //naievil -- wtf is this?
|
||||
|
||||
|
|
Loading…
Reference in a new issue