mirror of
https://github.com/nzp-team/quakespasm.git
synced 2024-11-10 06:32:03 +00:00
Add Loading Screens to NX and Vita.
+ misc changes. Please report bugs.
This commit is contained in:
parent
51a902e82d
commit
b912fc17d6
20 changed files with 666 additions and 180 deletions
Binary file not shown.
|
@ -767,6 +767,9 @@ void CL_RelinkEntities (void)
|
|||
|
||||
ent->forcelink = false;
|
||||
|
||||
if ( ent->effects & EF_NODRAW )
|
||||
continue;
|
||||
|
||||
if (i == cl.viewentity && !chase_active.value)
|
||||
continue;
|
||||
|
||||
|
|
|
@ -403,6 +403,9 @@ void CL_ParseServerInfo (void)
|
|||
// now we try to load everything else until a cache allocation fails
|
||||
//
|
||||
|
||||
loading_num_step = loading_num_step +nummodels + numsounds;
|
||||
loading_step = 1;
|
||||
|
||||
// copy the naked name of the map file to the cl structure -- O.S
|
||||
COM_StripExtension (COM_SkipPath(model_precache[1]), cl.mapname, sizeof(cl.mapname));
|
||||
|
||||
|
@ -414,16 +417,31 @@ void CL_ParseServerInfo (void)
|
|||
Host_Error ("Model %s not found", model_precache[i]);
|
||||
}
|
||||
CL_KeepaliveMessage ();
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, model_precache[i]);
|
||||
//Con_Printf("%i,",i);
|
||||
SCR_UpdateScreen ();
|
||||
}
|
||||
|
||||
SCR_UpdateScreen ();
|
||||
|
||||
loading_step = 4;
|
||||
|
||||
S_BeginPrecaching ();
|
||||
for (i = 1; i < numsounds; i++)
|
||||
{
|
||||
cl.sound_precache[i] = S_PrecacheSound (sound_precache[i]);
|
||||
CL_KeepaliveMessage ();
|
||||
loading_cur_step++;
|
||||
//Con_Printf("%i,",i);
|
||||
strcpy(loading_name, sound_precache[i]);
|
||||
SCR_UpdateScreen ();
|
||||
}
|
||||
S_EndPrecaching ();
|
||||
|
||||
SCR_UpdateScreen ();
|
||||
Clear_LoadingFill ();
|
||||
|
||||
// local state
|
||||
cl_entities[0].model = cl.worldmodel = cl.model_precache[1];
|
||||
|
||||
|
|
|
@ -1632,7 +1632,7 @@ static int COM_FindFile (const char *filename, int *handle, FILE **file,
|
|||
}
|
||||
else
|
||||
{
|
||||
return 0; /* dummy valid value for COM_FileExists() */
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1773,11 +1773,11 @@ byte *COM_LoadFile (const char *path, int usehunk, unsigned int *path_id)
|
|||
buf = (byte *) malloc (len+1);
|
||||
break;
|
||||
default:
|
||||
Sys_Error ("COM_LoadFile: bad usehunk");
|
||||
Host_Error ("COM_LoadFile: bad usehunk");
|
||||
}
|
||||
|
||||
if (!buf)
|
||||
Sys_Error ("COM_LoadFile: not enough space for %s", path);
|
||||
Host_Error ("COM_LoadFile: not enough space for %s", path);
|
||||
|
||||
((byte *)buf)[len] = 0;
|
||||
|
||||
|
|
|
@ -64,6 +64,8 @@ qboolean con_debuglog = false;
|
|||
|
||||
qboolean con_initialized;
|
||||
|
||||
extern qboolean console_enabled;
|
||||
|
||||
void M_OSK_Draw (void);
|
||||
|
||||
/*
|
||||
|
@ -118,9 +120,11 @@ void Con_ToggleConsole_f (void)
|
|||
{
|
||||
IN_Activate();
|
||||
key_dest = key_game;
|
||||
console_enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
console_enabled = false;
|
||||
M_Menu_Main_f ();
|
||||
}
|
||||
}
|
||||
|
@ -1185,7 +1189,7 @@ The typing input line at the bottom should only be drawn if typing is allowed
|
|||
|
||||
// Naievil -- console toggle for menu
|
||||
int OSK_toggle;
|
||||
|
||||
qboolean console_enabled;
|
||||
void Con_DrawConsole (int lines, qboolean drawinput)
|
||||
{
|
||||
int i, x, y, j, sb, rows;
|
||||
|
@ -1200,6 +1204,8 @@ void Con_DrawConsole (int lines, qboolean drawinput)
|
|||
|
||||
// draw the background
|
||||
Draw_ConsoleBackground ();
|
||||
if (!console_enabled && !developer.value)
|
||||
return;
|
||||
|
||||
// draw the buffer text
|
||||
rows = (con_vislines +7)/8;
|
||||
|
|
|
@ -37,11 +37,18 @@ void Draw_AlphaPic (int x, int y, qpic_t *pic, float alpha);
|
|||
void Draw_ColorPic (int x, int y, qpic_t *pic, float r, float g, float b, float alpha);
|
||||
void Draw_TransPicTranslate (int x, int y, qpic_t *pic, int top, int bottom); //johnfitz -- more parameters
|
||||
void Draw_ConsoleBackground (void); //johnfitz -- removed parameter int lines
|
||||
void Draw_LoadingFill(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, float alpha); //johnfitz -- added alpha
|
||||
void Draw_FillByColor (int x, int y, int w, int h, unsigned int c, float alpha);
|
||||
void Draw_FillByColor (int x, int y, int w, int h, float r, float g, float b, float a);
|
||||
void Draw_FadeScreen (void);
|
||||
void Draw_String (int x, int y, const char *str);
|
||||
|
||||
extern float loading_cur_step;
|
||||
extern int loading_step;
|
||||
extern char loading_name[32];
|
||||
extern float loading_num_step;
|
||||
|
||||
void Draw_ColoredString (int x, int y, const char *str, float r, float g, float b, float a);
|
||||
void Draw_ColoredStringScale (int x, int y, const char *str, float r, float g, float b, float a, float s);
|
||||
qpic_t *Draw_PicFromWad (const char *name);
|
||||
|
|
114
source/gl_draw.c
114
source/gl_draw.c
|
@ -42,6 +42,13 @@ qpic_t *pic_nul; //johnfitz -- for missing gfx, don't crash
|
|||
qpic_t *sniper_scope;
|
||||
int zombie_skins[2][2];
|
||||
|
||||
//Loading Fill by Crow_bar
|
||||
float loading_cur_step;
|
||||
char loading_name[32];
|
||||
float loading_num_step;
|
||||
int loading_step;
|
||||
float loading_cur_step_bk;
|
||||
|
||||
|
||||
//johnfitz -- new pics
|
||||
byte pic_ovr_data[8][8] =
|
||||
|
@ -296,6 +303,9 @@ qpic_t *Draw_CachePic (const char *path)
|
|||
qpic_t *dat;
|
||||
glpic_t gl;
|
||||
|
||||
if (!COM_FileExists(path, NULL))
|
||||
return NULL;
|
||||
|
||||
for (pic=menu_cachepics, i=0 ; i<menu_numcachepics ; pic++, i++)
|
||||
{
|
||||
if (!strcmp (path, pic->name))
|
||||
|
@ -318,13 +328,14 @@ qpic_t *Draw_CachePic (const char *path)
|
|||
src_type = SRC_TGA;
|
||||
|
||||
dat = (qpic_t *)LoadTGAPic(path_noext);
|
||||
|
||||
if (!dat)
|
||||
Host_Error ("Draw_CachePic: failed to load %s", path);
|
||||
} else {
|
||||
src_type = SRC_INDEXED;
|
||||
|
||||
dat = (qpic_t *)COM_LoadTempFile (path, NULL);
|
||||
if (!dat)
|
||||
Sys_Error ("Draw_CachePic: failed to load %s", path);
|
||||
Host_Error ("Draw_CachePic: failed to load %s", path);
|
||||
SwapPic (dat);
|
||||
}
|
||||
|
||||
|
@ -455,6 +466,7 @@ void Draw_Init (void)
|
|||
|
||||
// load game pics
|
||||
Draw_LoadPics ();
|
||||
Clear_LoadingFill ();
|
||||
}
|
||||
|
||||
//==============================================================================
|
||||
|
@ -839,7 +851,7 @@ void Draw_ConsoleBackground (void)
|
|||
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
}
|
||||
|
||||
Draw_FillByColor (0, 0, vid.conwidth, vid.conheight, 0, alpha);
|
||||
Draw_FillByColor (0, 0, vid.conwidth, vid.conheight, 0, 0, 0, alpha);
|
||||
|
||||
|
||||
if (alpha < 1.0)
|
||||
|
@ -852,6 +864,63 @@ void Draw_ConsoleBackground (void)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
Draw_LoadingFill
|
||||
By Crow_bar
|
||||
================
|
||||
*/
|
||||
void Draw_LoadingFill(void)
|
||||
{
|
||||
if(!loading_num_step)
|
||||
return;
|
||||
|
||||
int size = 8;
|
||||
int max_step = 350;
|
||||
int x = (vid.width / 2) - (max_step / 2);
|
||||
int y = vid.height - (size/ 2) - 25;
|
||||
int l;
|
||||
char str[64];
|
||||
char* text;
|
||||
|
||||
|
||||
if(loading_cur_step > loading_num_step)
|
||||
loading_cur_step = loading_num_step;
|
||||
|
||||
if (loading_cur_step < loading_cur_step_bk)
|
||||
loading_cur_step = loading_cur_step_bk;
|
||||
|
||||
if (loading_cur_step == loading_num_step && loading_cur_step_bk != loading_num_step)
|
||||
loading_cur_step = loading_cur_step_bk;
|
||||
|
||||
float loadsize = loading_cur_step * (max_step / loading_num_step);
|
||||
Draw_FillByColor (x - 2, y - 2, max_step + 4, size + 4, 69, 69, 69, 255);
|
||||
Draw_FillByColor (x, y, loadsize, size, 0, 0, 0, 200);
|
||||
|
||||
switch(loading_step) {
|
||||
case 1: text = "Loading Models.."; break;
|
||||
case 2: text = "Loading World.."; break;
|
||||
case 3: text = "Running Test Frame.."; break;
|
||||
case 4: text = "Loading Sounds.."; break;
|
||||
default: text = "Initializing.."; break;
|
||||
}
|
||||
|
||||
l = strlen (text);
|
||||
Draw_String((vid.width - l*8)/2, y, text);
|
||||
|
||||
loading_cur_step_bk = loading_cur_step;
|
||||
}
|
||||
|
||||
void Clear_LoadingFill (void)
|
||||
{
|
||||
//it is end loading
|
||||
loading_cur_step = 0;
|
||||
loading_cur_step_bk = 0;
|
||||
loading_num_step = 0;
|
||||
loading_step = -1;
|
||||
memset(loading_name, 0, sizeof(loading_name));
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
=============
|
||||
|
@ -918,24 +987,24 @@ Draw_FillByColor
|
|||
Fills a box of pixels with a single color not in basepal
|
||||
=============
|
||||
*/
|
||||
void Draw_FillByColor (int x, int y, int w, int h, unsigned int c, float alpha) //johnfitz -- added alpha
|
||||
void Draw_FillByColor (int x, int y, int w, int h, float r, float g, float b, float a)
|
||||
{
|
||||
glDisable (GL_TEXTURE_2D);
|
||||
glEnable (GL_BLEND); //johnfitz -- for alpha
|
||||
glDisable (GL_ALPHA_TEST); //johnfitz -- for alpha
|
||||
glColor4f (c, c, c, alpha); //johnfitz -- added alpha
|
||||
glDisable (GL_TEXTURE_2D);
|
||||
glEnable (GL_BLEND);
|
||||
glDisable (GL_ALPHA_TEST);
|
||||
glColor4f (r/255, g/255, b/255, a/255);
|
||||
|
||||
glBegin (GL_QUADS);
|
||||
glVertex2f (x,y);
|
||||
glVertex2f (x+w, y);
|
||||
glVertex2f (x+w, y+h);
|
||||
glVertex2f (x, y+h);
|
||||
glEnd ();
|
||||
glBegin (GL_QUADS);
|
||||
glVertex2f (x,y);
|
||||
glVertex2f (x+w, y);
|
||||
glVertex2f (x+w, y+h);
|
||||
glVertex2f (x, y+h);
|
||||
glEnd ();
|
||||
|
||||
glColor3f (1,1,1);
|
||||
glDisable (GL_BLEND); //johnfitz -- for alpha
|
||||
glEnable(GL_ALPHA_TEST); //johnfitz -- for alpha
|
||||
glEnable (GL_TEXTURE_2D);
|
||||
glColor4f (1,1,1,1);
|
||||
glDisable (GL_BLEND);
|
||||
glEnable(GL_ALPHA_TEST);
|
||||
glEnable (GL_TEXTURE_2D);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1106,7 +1175,7 @@ void GL_ResampleTexture (unsigned *in, int inwidth, int inheight, unsigned *out,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
int loading_cur_step;
|
||||
int loading_num_step;
|
||||
|
||||
|
@ -1116,7 +1185,7 @@ void Clear_LoadingFill (void)
|
|||
loading_cur_step = 0;
|
||||
loading_num_step = 0;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
=============
|
||||
|
@ -1132,11 +1201,6 @@ gltexture_t *loadtextureimage (char* filename)
|
|||
int w, h;
|
||||
|
||||
data = Image_LoadImage (filename, &w, &h);
|
||||
if(data == NULL)
|
||||
{
|
||||
Sys_Error("loadtextureimage: Cannot load the image %s\n", filename);
|
||||
return 0;
|
||||
}
|
||||
|
||||
gl.gltexture = TexMgr_LoadImage (NULL, filename, w, h, SRC_RGBA, data, filename, sizeof(int)*2, TEXPREF_ALPHA | TEXPREF_NEAREST | TEXPREF_NOPICMIP);
|
||||
|
||||
|
|
|
@ -275,35 +275,43 @@ void HUD_EndScreen (void)
|
|||
int i, k, l;
|
||||
int y, x, d;
|
||||
|
||||
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++)
|
||||
//sB hack in to stop showing HUD during boot
|
||||
if(cl.stats[STAT_ROUNDS] >= 1)
|
||||
{
|
||||
k = pointsort[i];
|
||||
s = &cl.scores[k];
|
||||
if (!s->name[0])
|
||||
continue;
|
||||
HUD_Sortpoints ();
|
||||
|
||||
Draw_String (x, vid.height/2 + vid.height*78/272 + y, s->name);
|
||||
l = scoreboardlines;
|
||||
|
||||
d = strlen (va("%i",s->kills));
|
||||
Draw_String (x + (20 - d)*8, vid.height/2 + (vid.height)*78/272 + y, va("%i",s->kills));
|
||||
Draw_String ((vid.width/2 - 9*8)/2, vid.height/2 + (vid.height)*40/272, "GAME OVER");
|
||||
|
||||
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;
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1006,8 +1014,8 @@ void HUD_ProgressBar (void)
|
|||
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, 100/255.0);
|
||||
Draw_FillByColor ((vid.width)/4 - 50, vid.height/2 + (vid.height/2)*0.75, progressbar, 3, 1, 100/255.0);
|
||||
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...");
|
||||
}
|
||||
|
|
|
@ -527,6 +527,8 @@ void Mod_LoadTextures (lump_t *l)
|
|||
loadmodel->numtextures = nummiptex + 2; //johnfitz -- need 2 dummy texture chains for missing textures
|
||||
loadmodel->textures = (texture_t **) Hunk_AllocName (loadmodel->numtextures * sizeof(*loadmodel->textures) , loadname);
|
||||
|
||||
loading_num_step = loading_num_step + m->nummiptex;
|
||||
|
||||
// motolegacy - load referenced WAD3 files for HLBSP, from DQuake+
|
||||
if (loadmodel->bspversion == HL_BSPVERSION)
|
||||
Mod_ParseWadsFromEntityLump(loadmodel->entities);
|
||||
|
@ -697,6 +699,10 @@ void Mod_LoadTextures (lump_t *l)
|
|||
}
|
||||
}
|
||||
}
|
||||
strcpy(loading_name, mt->name);
|
||||
//free (tx_pixels);
|
||||
loading_cur_step++;
|
||||
SCR_UpdateScreen();
|
||||
//johnfitz
|
||||
}
|
||||
|
||||
|
@ -2186,26 +2192,94 @@ void Mod_LoadBrushModel (qmodel_t *mod, void *buffer)
|
|||
for (i = 0; i < (int) sizeof(dheader_t) / 4; i++)
|
||||
((int *)header)[i] = LittleLong ( ((int *)header)[i]);
|
||||
|
||||
loading_num_step = loading_num_step + 16;
|
||||
loading_step = 2;
|
||||
|
||||
// load into heap
|
||||
|
||||
strcpy(loading_name, "Vertexes");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadVertexes (&header->lumps[LUMP_VERTEXES]);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Edges");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadEdges (&header->lumps[LUMP_EDGES], bsp2);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Surfedges");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadSurfedges (&header->lumps[LUMP_SURFEDGES]);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Entities");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadEntities (&header->lumps[LUMP_ENTITIES]);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Textures");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadTextures (&header->lumps[LUMP_TEXTURES]);
|
||||
|
||||
loading_cur_step++;
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadLighting (&header->lumps[LUMP_LIGHTING]);
|
||||
loading_cur_step++;
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadPlanes (&header->lumps[LUMP_PLANES]);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Texinfo");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadTexinfo (&header->lumps[LUMP_TEXINFO]);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Faces");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadFaces (&header->lumps[LUMP_FACES], bsp2);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Marksurfaces");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadMarksurfaces (&header->lumps[LUMP_MARKSURFACES], bsp2);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Visibility");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadVisibility (&header->lumps[LUMP_VISIBILITY]);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Leafs");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadLeafs (&header->lumps[LUMP_LEAFS], bsp2);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Nodes");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadNodes (&header->lumps[LUMP_NODES], bsp2);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Clipnodes");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadClipnodes (&header->lumps[LUMP_CLIPNODES], bsp2);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Submodels");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_LoadSubmodels (&header->lumps[LUMP_MODELS]);
|
||||
|
||||
loading_cur_step++;
|
||||
strcpy(loading_name, "Hull");
|
||||
SCR_UpdateScreen ();
|
||||
Mod_MakeHull0 ();
|
||||
|
||||
loading_cur_step++;
|
||||
loading_step = 3;
|
||||
|
||||
strcpy(loading_name, "Screen");
|
||||
loading_cur_step++;
|
||||
SCR_UpdateScreen ();
|
||||
|
||||
mod->numframes = 2; // regular and alternate animation
|
||||
|
||||
//
|
||||
|
@ -2448,23 +2522,6 @@ void Mod_FloodFillSkin( byte *skin, int skinwidth, int skinheight )
|
|||
}
|
||||
}
|
||||
|
||||
qboolean model_is_zombie(char name[MAX_QPATH])
|
||||
{
|
||||
if (Q_strcmp(name, "models/ai/zbod.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zcbod.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zcfull.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zchead.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zclarm.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zcrarm.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zfull.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zhead.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zlarm.mdl") == 0 ||
|
||||
Q_strcmp(name, "models/ai/zrarm.mdl") == 0)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
===============
|
||||
Mod_LoadAllSkins
|
||||
|
@ -2512,11 +2569,11 @@ void *Mod_LoadAllSkins (int numskins, daliasskintype_t *pskintype)
|
|||
qboolean malloced=false;
|
||||
enum srcformat fmt = SRC_RGBA;
|
||||
|
||||
if (model_is_zombie(loadmodel->name) == true) {
|
||||
/*if (model_is_zombie(loadmodel->name) == true) {
|
||||
q_snprintf(filename, sizeof(filename), "%s", zombie_skinss[i]);
|
||||
} else {
|
||||
} else {*/
|
||||
q_snprintf (filename, sizeof(filename), "%s_%i", loadmodel->name, i);
|
||||
}
|
||||
//}
|
||||
|
||||
data = Image_LoadImage (filename, &fwidth, &fheight);
|
||||
|
||||
|
|
|
@ -449,9 +449,9 @@ void QMB_AllocParticles (void)
|
|||
particles = (particle_t *) malloc (r_numparticles * sizeof(particle_t));
|
||||
}
|
||||
|
||||
extern int loading_num_step;
|
||||
extern int loading_cur_step;
|
||||
char loading_name[32];
|
||||
extern float loading_num_step;
|
||||
extern float loading_cur_step;
|
||||
extern char loading_name[32];
|
||||
|
||||
void QMB_InitParticles (void)
|
||||
{
|
||||
|
@ -478,7 +478,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/particles/particlefont")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/particlefont\n");
|
||||
return;
|
||||
}
|
||||
|
@ -497,9 +497,12 @@ void QMB_InitParticles (void)
|
|||
for (i=0 ; i<8 ; i++)
|
||||
ADD_PARTICLE_TEXTURE(ptex_dpsmoke, glpic, i, 8, i * 32, 64, (i + 1) * 32, 96);
|
||||
|
||||
loading_cur_step++;
|
||||
SCR_UpdateScreen ();
|
||||
|
||||
if (!(glpic = loadtextureimage("textures/particles/smoke")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/smoke\n");
|
||||
return;
|
||||
}
|
||||
|
@ -513,7 +516,7 @@ void QMB_InitParticles (void)
|
|||
// load the rest of the images
|
||||
if(!(glpic = loadtextureimage("textures/particles/q3particlefont")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/q3particlefont\n");
|
||||
return;
|
||||
}
|
||||
|
@ -539,7 +542,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/particles/flame")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/flame\n");
|
||||
return;
|
||||
}
|
||||
|
@ -551,7 +554,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/particles/inferno")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/inferno\n");
|
||||
return;
|
||||
}
|
||||
|
@ -563,7 +566,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/particles/zing1")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/zing1\n");
|
||||
return;
|
||||
}
|
||||
|
@ -577,7 +580,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/mzfl/mzfl0")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/mzfl0\n");
|
||||
return;
|
||||
}
|
||||
|
@ -590,7 +593,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/mzfl/mzfl1")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/mzfl1\n");
|
||||
return;
|
||||
}
|
||||
|
@ -601,7 +604,7 @@ void QMB_InitParticles (void)
|
|||
SCR_UpdateScreen ();
|
||||
if (!(glpic = loadtextureimage("textures/mzfl/mzfl2")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/mzfl2\n");
|
||||
return;
|
||||
}
|
||||
|
@ -613,7 +616,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/mzfl/muzzleflash8")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/muzzleflash8\n");
|
||||
return;
|
||||
}
|
||||
|
@ -626,7 +629,7 @@ void QMB_InitParticles (void)
|
|||
max_s = max_t = 64.0;
|
||||
if (!(glpic = loadtextureimage("textures/particles/bloodcloud")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/bloodcloud\n");
|
||||
return;
|
||||
}
|
||||
|
@ -638,7 +641,7 @@ void QMB_InitParticles (void)
|
|||
|
||||
if (!(glpic = loadtextureimage("textures/particles/fly")))
|
||||
{
|
||||
Clear_LoadingFill ();
|
||||
//Clear_LoadingFill ();
|
||||
Sys_Error("Cannot load textures/particles/fly\n");
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -77,6 +77,10 @@ int glx, gly, glwidth, glheight;
|
|||
int scr_copytop;
|
||||
int loadingScreen;
|
||||
|
||||
qboolean loadscreeninit;
|
||||
char* loadname2;
|
||||
char* loadnamespec;
|
||||
|
||||
float scr_con_current;
|
||||
float scr_conlines; // lines of console to display
|
||||
|
||||
|
@ -96,6 +100,7 @@ cvar_t scr_fov = {"fov","70",CVAR_NONE}; // 10 - 170
|
|||
cvar_t scr_fov_adapt = {"fov_adapt","1",CVAR_ARCHIVE};
|
||||
cvar_t scr_dynamic_fov = {"scr_dynamic_fov","1",CVAR_ARCHIVE}; //sB add dynamic FOV toggle
|
||||
cvar_t scr_fov_viewmodel = {"r_viewmodel_fov","70"};
|
||||
cvar_t scr_loadscreen = {"scr_loadscreen","1", true}; //sB loading screens
|
||||
cvar_t scr_conspeed = {"scr_conspeed","500",CVAR_ARCHIVE};
|
||||
cvar_t scr_centertime = {"scr_centertime","2",CVAR_NONE};
|
||||
cvar_t scr_showram = {"showram","1",CVAR_NONE};
|
||||
|
@ -113,6 +118,8 @@ qpic_t *scr_net;
|
|||
qpic_t *scr_turtle;
|
||||
|
||||
qpic_t *hitmark;
|
||||
qpic_t *lscreen;
|
||||
qpic_t *lscreendefault;
|
||||
qpic_t *ls_wahnsinn;
|
||||
qpic_t *ls_anstieg;
|
||||
|
||||
|
@ -127,6 +134,8 @@ qboolean scr_disabled_for_loading;
|
|||
qboolean scr_drawloading;
|
||||
float scr_disabled_time;
|
||||
|
||||
float oldscreensize, oldfov;
|
||||
|
||||
int scr_tileclear_updates = 0; //johnfitz
|
||||
|
||||
char scr_usestring[1024];
|
||||
|
@ -679,6 +688,7 @@ void SCR_Init (void)
|
|||
Cvar_RegisterVariable (&scr_menuscale);
|
||||
Cvar_RegisterVariable (&scr_sbarscale);
|
||||
Cvar_SetCallback (&scr_sbaralpha, SCR_Callback_refdef);
|
||||
Cvar_RegisterVariable (&scr_loadscreen); //sB loading screen
|
||||
Cvar_RegisterVariable (&scr_sbaralpha);
|
||||
Cvar_SetCallback (&scr_conwidth, &SCR_Conwidth_f);
|
||||
Cvar_SetCallback (&scr_conscale, &SCR_Conwidth_f);
|
||||
|
@ -930,6 +940,276 @@ void SCR_DrawLoading (void)
|
|||
scr_tileclear_updates = 0; //johnfitz
|
||||
}
|
||||
|
||||
int Random_Int (int max_int)
|
||||
{
|
||||
float f;
|
||||
f = (rand ()&0x7fff) / ((float)0x7fff) * max_int;
|
||||
if (f > 0)
|
||||
return (int)(f + 0.5) + 1;
|
||||
else
|
||||
return (int)(f - 0.5) + 1;
|
||||
}
|
||||
/*
|
||||
==============
|
||||
SCR_DrawLoadScreen
|
||||
==============
|
||||
*/
|
||||
|
||||
/*
|
||||
Creds to the following people from the 2020
|
||||
Loading Screen Hint Submission/Contest:
|
||||
|
||||
* BCDeshiG
|
||||
* Derped_Crusader
|
||||
* Aidan
|
||||
* yasen
|
||||
* greg
|
||||
* Asher
|
||||
* Bernerd
|
||||
* Omar Alejandro
|
||||
* TheSmashers
|
||||
*/
|
||||
double loadingtimechange;
|
||||
int loadingdot;
|
||||
int loadingtextwidth;
|
||||
char *lodinglinetext;
|
||||
qpic_t *awoo;
|
||||
char *ReturnLoadingtex (void)
|
||||
{
|
||||
int StringNum = Random_Int(55);
|
||||
switch(StringNum)
|
||||
{
|
||||
case 1:
|
||||
return "Released in 1996, Quake is now over 25 years old!";
|
||||
break;
|
||||
case 2:
|
||||
return "Use the Kar98-k to be the hero we want you to be!";
|
||||
break;
|
||||
case 3:
|
||||
return "There is a huge number of modern engines based on Quake!";
|
||||
break;
|
||||
case 4:
|
||||
return "Development for NZ:P officially began on September 27, 2009";
|
||||
break;
|
||||
case 5:
|
||||
return "NZ:P was first released on December 25, 2010!";
|
||||
break;
|
||||
case 6:
|
||||
return "The 1.1 release of NZ:P has over 90,000 downloads!";
|
||||
break;
|
||||
case 7:
|
||||
return "NZ:P has been downloaded over 400,000 times!";
|
||||
break;
|
||||
case 8:
|
||||
return "The original NZP was made mainly by 3 guys around the world.";
|
||||
break;
|
||||
case 9:
|
||||
return "Blubswillrule: known as \"blubs\", is from the USA.";
|
||||
break;
|
||||
case 10:
|
||||
return "Jukki is from Finland.";
|
||||
break;
|
||||
case 11:
|
||||
return "Ju[s]tice, or \"tom\" is from Lithuania.";
|
||||
break;
|
||||
case 12:
|
||||
return "This game is the reason that we have bad sleeping habits!";
|
||||
break;
|
||||
case 13:
|
||||
return "We had a lot of fun making this game.";
|
||||
break;
|
||||
case 14:
|
||||
return "Did you know you can make your own Custom Map?";
|
||||
break;
|
||||
case 15:
|
||||
return "Try Retro Mode, it's in the Graphics Settings!";
|
||||
break;
|
||||
case 16:
|
||||
return "Tired of the base maps? Make your own or try some online!";
|
||||
break;
|
||||
case 17:
|
||||
return "Slay zombies & be grateful.";
|
||||
break;
|
||||
case 18:
|
||||
return "Custom maps, CUSTOM MAPS!";
|
||||
break;
|
||||
case 19:
|
||||
return "Go outside & build a snowman!";
|
||||
break;
|
||||
case 20:
|
||||
return "Please surround yourself with zombies!";
|
||||
break;
|
||||
case 21:
|
||||
return "Don't play for too long, or zombies will eat you.";
|
||||
break;
|
||||
case 22:
|
||||
return "That was epic... EPIC FOR THE WIIIN!"; //why
|
||||
break;
|
||||
case 23:
|
||||
return "PPSSPP is an awesome PSP emulator!";
|
||||
break;
|
||||
case 24:
|
||||
return "You dead yet?";
|
||||
break;
|
||||
case 25:
|
||||
return "Now 21% cooler!";
|
||||
break;
|
||||
case 26:
|
||||
return "your lg is nothink on the lan"; //what
|
||||
break;
|
||||
case 27:
|
||||
return "I'm not your chaotic on dm6!";
|
||||
break;
|
||||
case 28:
|
||||
return "Shoot zombies to kill them. Or knife them. You choose.";
|
||||
break;
|
||||
case 29:
|
||||
return "How many people forgot to Compile today?";
|
||||
break;
|
||||
case 30:
|
||||
return "ggnore";
|
||||
break;
|
||||
case 31:
|
||||
return "Have you tried NZ:P on PC or NX?";
|
||||
break;
|
||||
case 32:
|
||||
return "Submerge your device in water for godmode!";
|
||||
break;
|
||||
case 33:
|
||||
return "10/10/10 was a good day.";
|
||||
break;
|
||||
case 34:
|
||||
return "Also check out \"No Bugs Allowed\" for the PSP!";
|
||||
break;
|
||||
case 35:
|
||||
return "MotoLegacy, or \"Ian\", is from the USA.";
|
||||
break;
|
||||
case 36:
|
||||
return "Zombies don't like bullets.";
|
||||
break;
|
||||
case 37:
|
||||
return "Thanks for being an awesome fan!";
|
||||
break;
|
||||
case 38:
|
||||
return "Removed Herobrine";
|
||||
break;
|
||||
case 39:
|
||||
return "Pack-a-Punch the Kar98k to get to round infinity.";
|
||||
break;
|
||||
case 40:
|
||||
return "I feel like I'm being gaslit.";
|
||||
break;
|
||||
case 41:
|
||||
return "Heads up! You will die if you are killed!";
|
||||
break;
|
||||
case 42:
|
||||
return "Zombies legally can't kill you if you say no!";
|
||||
break;
|
||||
case 43:
|
||||
return "Please help me find the meaning of . Thanks.";
|
||||
break;
|
||||
case 44:
|
||||
return "NZ:P Discord is ONLY for Thomas the Tank Engine Roleplay!";
|
||||
break;
|
||||
case 45:
|
||||
return "Get rid of the 21% cooler tip, it's an MLP reference.";
|
||||
break;
|
||||
case 46:
|
||||
return "You're playing on a PS Vita!";
|
||||
break;
|
||||
case 47:
|
||||
return "Don't leak the beta!";
|
||||
break;
|
||||
case 48:
|
||||
return "Jugger-Nog increases your health!";
|
||||
break;
|
||||
case 49:
|
||||
return "greg was here";
|
||||
break;
|
||||
case 50:
|
||||
return "Where the hell is the Mystery Box?!";
|
||||
break;
|
||||
case 51:
|
||||
return "Zombies like getting shot.. I think.";
|
||||
break;
|
||||
case 52:
|
||||
return "pro tip: aiming helps";
|
||||
break;
|
||||
case 53:
|
||||
return "If a Nazi Zombie bites you, are you a Nazi, or a Zombie?";
|
||||
break;
|
||||
case 54:
|
||||
return "Play some Custom Maps!";
|
||||
break;
|
||||
}
|
||||
return "wut wut";
|
||||
}
|
||||
qboolean load_screen_exists;
|
||||
void SCR_DrawLoadScreen (void)
|
||||
{
|
||||
int max_step = 350;
|
||||
int x = (vid.width / 2) - (max_step / 2);
|
||||
|
||||
if (developer.value)
|
||||
return;
|
||||
if (!con_forcedup)
|
||||
return;
|
||||
|
||||
if (loadingScreen) {
|
||||
if (!loadscreeninit) {
|
||||
load_screen_exists = false;
|
||||
|
||||
char* lpath;
|
||||
lpath = (char*)Z_Malloc(sizeof(char)*32);
|
||||
strcpy(lpath, "gfx/lscreen/");
|
||||
strcat(lpath, loadname2);
|
||||
strcat(lpath, ".tga");
|
||||
|
||||
lscreen = Draw_CachePic(lpath);
|
||||
//
|
||||
//awoo = Draw_CachePic("gfx/menu/awoo");
|
||||
|
||||
if (lscreen == NULL)
|
||||
{
|
||||
lscreen = Draw_CachePic("gfx/lscreen/lscreen.tga");
|
||||
}
|
||||
load_screen_exists = true;
|
||||
|
||||
loadscreeninit = true;
|
||||
}
|
||||
|
||||
if (load_screen_exists == true)
|
||||
{
|
||||
Draw_StretchPic(0, 0, lscreen, vid.width, vid.height);
|
||||
//Sys_Error("Fixme pls");
|
||||
}
|
||||
|
||||
Draw_FillByColor(0, 0, 480, 24, 0, 0, 0, 150);
|
||||
Draw_FillByColor(x - 62, 478, 480, 24, 0, 0, 0, 150);
|
||||
|
||||
Draw_ColoredString(2, 4, loadnamespec, 255, 255, 0, 255);
|
||||
|
||||
}
|
||||
|
||||
if (loadingtimechange < Sys_DoubleTime ())
|
||||
{
|
||||
lodinglinetext = ReturnLoadingtex();
|
||||
loadingtextwidth = strlen(lodinglinetext); //strlen(lodinglinetext)*8
|
||||
loadingtimechange = Sys_DoubleTime () + 5;
|
||||
}
|
||||
|
||||
if (key_dest == key_game) {
|
||||
Draw_ColoredString((vid.width - loadingtextwidth*8)/2/* - loadingtextwidth/2*/, 486, lodinglinetext, 255, 255, 255, 255);
|
||||
|
||||
//if (strcmp(lodinglinetext, "Please help me find the meaning of . Thanks.") == 0) {
|
||||
//Draw_Pic(335, 255, awoo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
|
||||
//cvar_t crosshair;
|
||||
extern cvar_t crosshair;
|
||||
extern qboolean croshhairmoving;
|
||||
|
@ -1294,6 +1574,7 @@ void SCR_SetUpToDrawConsole (void)
|
|||
scr_tileclear_updates = 0; //johnfitz
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
==================
|
||||
SCR_DrawConsole
|
||||
|
@ -1658,7 +1939,10 @@ void SCR_UpdateScreen (void)
|
|||
{
|
||||
vid.numpages = (gl_triplebuffer.value) ? 3 : 2;
|
||||
|
||||
if (scr_disabled_for_loading)
|
||||
scr_copytop = 0;
|
||||
|
||||
//screen is disabled for loading, and we don't have any loading steps...?
|
||||
if (scr_disabled_for_loading && !loading_num_step)
|
||||
{
|
||||
if (realtime - scr_disabled_time > 60)
|
||||
{
|
||||
|
@ -1672,19 +1956,15 @@ void SCR_UpdateScreen (void)
|
|||
if (!scr_initialized || !con_initialized)
|
||||
return; // not initialized yet
|
||||
|
||||
scr_copytop = 0;
|
||||
|
||||
|
||||
GL_BeginRendering (&glx, &gly, &glwidth, &glheight);
|
||||
|
||||
|
||||
if (cl.stats[STAT_ZOOM] == 1) //sB was here porting seperate viewmodel fov
|
||||
{
|
||||
if(!original_fov)
|
||||
{
|
||||
original_fov = scr_fov.value;
|
||||
original_view_fov = scr_fov_viewmodel.value;
|
||||
}
|
||||
|
||||
if(scr_fov.value > (GetWeaponZoomAmmount() + 1))//+1 for accounting for floating point inaccurraces
|
||||
{
|
||||
scr_fov.value += ((original_fov - GetWeaponZoomAmmount()) - scr_fov.value) * 0.25;
|
||||
|
@ -1701,22 +1981,21 @@ void SCR_UpdateScreen (void)
|
|||
}
|
||||
else if (cl.stats[STAT_ZOOM] == 3)
|
||||
{
|
||||
if(!original_fov)
|
||||
if(!original_fov){
|
||||
original_fov = scr_fov.value;
|
||||
original_view_fov = scr_fov_viewmodel.value;
|
||||
//original_fov = scr_fov.value;
|
||||
|
||||
}
|
||||
if(scr_dynamic_fov.value == 0) //sB add dynamic FOV toggle
|
||||
{
|
||||
original_fov = 0;
|
||||
original_view_fov = 0;
|
||||
original_fov = scr_fov.value;
|
||||
original_view_fov = scr_fov_viewmodel.value;
|
||||
}
|
||||
else if(scr_dynamic_fov.value == 1)
|
||||
{
|
||||
scr_fov.value += (original_fov - 10 - scr_fov.value) * 0.3;
|
||||
//scr_fov_viewmodel.value += (original_view_fov - 10 - scr_fov_viewmodel.value) * 0.3;
|
||||
scr_fov_viewmodel.value += (original_view_fov - 10 - scr_fov_viewmodel.value) * 0.3;
|
||||
Cvar_SetValue("fov",scr_fov.value);
|
||||
//Cvar_SetValue("r_viewmodel_fov", scr_fov_viewmodel.value);
|
||||
Cvar_SetValue("r_viewmodel_fov", scr_fov_viewmodel.value);
|
||||
}
|
||||
}
|
||||
else if (cl.stats[STAT_ZOOM] == 0 && original_fov != 0)
|
||||
|
@ -1735,6 +2014,18 @@ void SCR_UpdateScreen (void)
|
|||
}
|
||||
}
|
||||
|
||||
if (oldfov != scr_fov.value)
|
||||
{
|
||||
oldfov = scr_fov.value;
|
||||
vid.recalc_refdef = true;
|
||||
}
|
||||
|
||||
if (oldscreensize != scr_viewsize.value)
|
||||
{
|
||||
oldscreensize = scr_viewsize.value;
|
||||
vid.recalc_refdef = true;
|
||||
}
|
||||
|
||||
//
|
||||
// determine size of refresh window
|
||||
//
|
||||
|
@ -1753,50 +2044,27 @@ void SCR_UpdateScreen (void)
|
|||
//FIXME: only call this when needed
|
||||
SCR_TileClear ();
|
||||
|
||||
if (scr_drawdialog) //new game confirm
|
||||
{
|
||||
if (con_forcedup)
|
||||
Draw_ConsoleBackground ();
|
||||
// else
|
||||
// Sbar_Draw ();
|
||||
Draw_FadeScreen ();
|
||||
SCR_DrawNotifyString ();
|
||||
}
|
||||
else if (scr_drawloading) //loading
|
||||
{
|
||||
SCR_DrawLoading ();
|
||||
// Sbar_Draw ();
|
||||
}
|
||||
else if (cl.intermission == 1 && key_dest == key_game) //end of level
|
||||
{
|
||||
Sbar_IntermissionOverlay ();
|
||||
}
|
||||
else if (cl.intermission == 2 && key_dest == key_game) //end of episode
|
||||
{
|
||||
Sbar_FinaleOverlay ();
|
||||
SCR_CheckDrawCenterString ();
|
||||
}
|
||||
else
|
||||
{
|
||||
SCR_DrawCrosshair (); //johnfitz
|
||||
SCR_DrawRam ();
|
||||
SCR_DrawNet ();
|
||||
SCR_DrawTurtle ();
|
||||
SCR_DrawPause ();
|
||||
SCR_CheckDrawCenterString ();
|
||||
SCR_CheckDrawUseString ();
|
||||
SCR_DrawDevStats (); //johnfitz
|
||||
HUD_Draw ();
|
||||
SCR_DrawFPS (); //johnfitz
|
||||
SCR_DrawClock (); //johnfitz
|
||||
SCR_DrawConsole ();
|
||||
M_Draw ();
|
||||
}
|
||||
SCR_DrawCrosshair (); //johnfitz
|
||||
SCR_DrawRam ();
|
||||
SCR_DrawNet ();
|
||||
SCR_DrawTurtle ();
|
||||
SCR_DrawPause ();
|
||||
SCR_CheckDrawCenterString ();
|
||||
SCR_CheckDrawUseString ();
|
||||
SCR_DrawDevStats (); //johnfitz
|
||||
HUD_Draw ();
|
||||
SCR_DrawFPS (); //johnfitz
|
||||
SCR_DrawClock (); //johnfitz
|
||||
SCR_DrawConsole ();
|
||||
M_Draw ();
|
||||
|
||||
if(scr_loadscreen.value)
|
||||
SCR_DrawLoadScreen();
|
||||
|
||||
Draw_LoadingFill();
|
||||
|
||||
V_UpdateBlend (); //johnfitz -- V_UpdatePalette cleaned up and renamed
|
||||
|
||||
GLSLGamma_GammaCorrect ();
|
||||
|
||||
GL_EndRendering ();
|
||||
}
|
||||
|
||||
|
|
|
@ -714,16 +714,20 @@ int fgetLittleShort (FILE *f);
|
|||
LoadTGA
|
||||
=============
|
||||
*/
|
||||
|
||||
qpic_t *LoadTGAPic (char *path)
|
||||
{
|
||||
byte *data;
|
||||
int w;
|
||||
int h;
|
||||
char *lscreendefault;
|
||||
|
||||
data = Image_LoadImage(path, &w, &h);
|
||||
|
||||
// Build it into a qpic for easy return
|
||||
|
||||
qpic_t *pic;
|
||||
|
||||
pic = (qpic_t *) Hunk_Alloc (sizeof(qpic_t) - 4 + (4 * w * h));
|
||||
|
||||
pic->width = w;
|
||||
|
|
|
@ -76,6 +76,7 @@ static inline int Buf_GetC(stdio_buffer_t *buf)
|
|||
#define STB_IMAGE_IMPLEMENTATION
|
||||
#define STBI_ONLY_JPEG
|
||||
#define STBI_ONLY_PNG
|
||||
#define STBI_ONLY_TGA
|
||||
#include "stb_image.h"
|
||||
static byte *Image_LoadSTBI(FILE *f, int *width, int *height)
|
||||
{
|
||||
|
@ -103,11 +104,11 @@ returns a pointer to hunk allocated RGBA data
|
|||
byte *Image_LoadImage (const char *name, int *width, int *height)
|
||||
{
|
||||
FILE *f;
|
||||
|
||||
q_snprintf (loadfilename, sizeof(loadfilename), "%s.tga", name);
|
||||
COM_FOpenFile (loadfilename, &f, NULL);
|
||||
if (f) {
|
||||
return Image_LoadTGA (f, width, height);
|
||||
}
|
||||
if (f)
|
||||
return Image_LoadSTBI (f, width, height);
|
||||
|
||||
q_snprintf (loadfilename, sizeof(loadfilename), "%s.png", name);
|
||||
COM_FOpenFile (loadfilename, &f, NULL);
|
||||
|
@ -258,6 +259,9 @@ byte *Image_LoadTGA (FILE *fin, int *width, int *height)
|
|||
if (targa_header.colormap_type !=0 || (targa_header.pixel_size!=32 && targa_header.pixel_size!=24))
|
||||
Sys_Error ("Image_LoadTGA: %s is not a 24bit or 32bit targa\n", loadfilename);
|
||||
|
||||
//if(targa_header.id_length == 0)
|
||||
//Sys_Error ("This TGA is non-existent\n");
|
||||
|
||||
columns = targa_header.width;
|
||||
rows = targa_header.height;
|
||||
numPixels = columns * rows;
|
||||
|
|
|
@ -262,7 +262,7 @@ char *osk_text2 [] =
|
|||
" A S D F G H J K L : \" | ",
|
||||
" Z X C V B N M < > ? "
|
||||
};
|
||||
|
||||
extern qboolean console_enabled;
|
||||
void Key_Console (int key)
|
||||
{
|
||||
static char current[MAXCMDLINE] = "";
|
||||
|
@ -1109,6 +1109,7 @@ void Key_Event (int key, qboolean down)
|
|||
break;
|
||||
case key_game:
|
||||
case key_console:
|
||||
console_enabled = false;
|
||||
M_ToggleMenu_f ();
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -66,6 +66,10 @@ cvar_t cl_enablereartouchpad = {"cl_enablereartouchpad", "0", CVAR_ARCHIVE};
|
|||
extern int loadingScreen;
|
||||
extern int ShowBlslogo;
|
||||
|
||||
extern char* loadname2;
|
||||
extern char* loadnamespec;
|
||||
extern qboolean loadscreeninit;
|
||||
|
||||
extern float cl_forwardspeed;
|
||||
|
||||
qpic_t *menu_bk;
|
||||
|
@ -356,6 +360,9 @@ void M_Paused_Menu_f (void) {
|
|||
key_dest = key_menu;
|
||||
m_state = m_paused_menu;
|
||||
m_entersound = true;
|
||||
|
||||
loadingScreen = 0;
|
||||
loadscreeninit = false;
|
||||
}
|
||||
|
||||
#define Max_Paused_Items 4
|
||||
|
@ -370,7 +377,7 @@ void M_Paused_Menu_Draw (void) {
|
|||
#endif
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Header
|
||||
Draw_ColoredStringScale(10, y + 10, "PAUSED", 1, 1, 1, 1, 3.0f);
|
||||
|
@ -452,23 +459,26 @@ void M_Paused_Menu_Key (int key)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
void M_Start_Menu_f ()
|
||||
{
|
||||
key_dest = key_menu;
|
||||
m_state = m_start;
|
||||
m_entersound = true;
|
||||
//loadingScreen = 0;
|
||||
loadingScreen = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
static void M_Start_Menu_Draw ()
|
||||
{
|
||||
qpic_t *start_bk;
|
||||
|
||||
start_bk = Draw_CachePic("gfx/lscreen/lscreen.tga");
|
||||
Draw_StretchPic(0, 0, start_bk, vid.width, vid.height);
|
||||
// Use the useprint canvas because it's easier to draw things scaled well not in console
|
||||
char *s = "Press start";
|
||||
GL_SetCanvas(CANVAS_USEPRINT);
|
||||
Draw_String ((vid.width/2 - (strlen(s)*8))/2, vid.height * 0.85, s);
|
||||
|
||||
}
|
||||
void M_Start_Key (int key)
|
||||
{
|
||||
|
@ -514,7 +524,7 @@ void M_Main_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Version String
|
||||
Draw_ColoredString(vid.width - 40, y + 5, NZP_VERSION, 1, 1, 1, 1);
|
||||
|
@ -533,7 +543,7 @@ void M_Main_Draw (void)
|
|||
Draw_ColoredStringScale(10, y + 70, "Co-Op (Coming Soon!)", 0.5, 0.5, 0.5, 1, 1.5f);
|
||||
|
||||
// Divider
|
||||
Draw_FillByColor(10, y + 90, 240, 3, 1, 1);
|
||||
Draw_FillByColor(10, y + 90, 240, 3, 1, 1, 1, 1);
|
||||
|
||||
// Settings
|
||||
if (m_main_cursor == 1)
|
||||
|
@ -545,7 +555,7 @@ void M_Main_Draw (void)
|
|||
Draw_ColoredStringScale(10, y + 115, "Achievements", 0.5, 0.5, 0.5, 1, 1.5f);
|
||||
|
||||
// Divider
|
||||
Draw_FillByColor(10, y + 135, 240, 3, 1, 1);
|
||||
Draw_FillByColor(10, y + 135, 240, 3, 1, 1, 1, 1);
|
||||
|
||||
// Credits
|
||||
if (m_main_cursor == 2)
|
||||
|
@ -554,7 +564,7 @@ void M_Main_Draw (void)
|
|||
Draw_ColoredStringScale(10, y + 145, "Credits", 1, 1, 1, 1, 1.5f);
|
||||
|
||||
// Divider
|
||||
Draw_FillByColor(10, y + 165, 240, 3, 1, 1);
|
||||
Draw_FillByColor(10, y + 165, 240, 3, 1, 1, 1, 1);
|
||||
|
||||
// Exit
|
||||
if (m_main_cursor == 3)
|
||||
|
@ -802,7 +812,7 @@ void M_SinglePlayer_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Version String
|
||||
Draw_ColoredString(vid.width - 40, y + 5, NZP_VERSION, 1, 1, 1, 1);
|
||||
|
@ -835,7 +845,7 @@ void M_SinglePlayer_Draw (void)
|
|||
Draw_ColoredStringScale(10, y + 115, "Christmas Special", 1, 1, 1, 1, 1.5f);
|
||||
|
||||
// Divider
|
||||
Draw_FillByColor(10, y + 135, 240, 3, 1, 1);
|
||||
Draw_FillByColor(10, y + 135, 240, 3, 1, 1, 1, 1);
|
||||
|
||||
// Custom Maps
|
||||
if (m_singleplayer_cursor == 3)
|
||||
|
@ -928,6 +938,9 @@ void M_SinglePlayer_Key (int key)
|
|||
Cbuf_AddText ("deathmatch 0\n");
|
||||
Cbuf_AddText ("coop 0\n");
|
||||
Cbuf_AddText ("map ndu\n");
|
||||
loadingScreen = 1;
|
||||
loadname2 = "ndu";
|
||||
loadnamespec = "Nacht der Untoten";
|
||||
break;
|
||||
|
||||
case 1:
|
||||
|
@ -941,6 +954,9 @@ void M_SinglePlayer_Key (int key)
|
|||
Cbuf_AddText ("deathmatch 0\n");
|
||||
Cbuf_AddText ("coop 0\n");
|
||||
Cbuf_AddText ("map warehouse\n");
|
||||
loadingScreen = 1;
|
||||
loadname2 = "warehouse";
|
||||
loadnamespec = "Warehouse";
|
||||
break;
|
||||
|
||||
case 2:
|
||||
|
@ -954,6 +970,9 @@ void M_SinglePlayer_Key (int key)
|
|||
Cbuf_AddText ("deathmatch 0\n");
|
||||
Cbuf_AddText ("coop 0\n");
|
||||
Cbuf_AddText ("map christmas_special\n");
|
||||
loadingScreen = 1;
|
||||
loadname2 = "christmas_special";
|
||||
loadnamespec = "Christmas Special";
|
||||
break;
|
||||
|
||||
case 3:
|
||||
|
@ -1000,7 +1019,7 @@ void M_Menu_Maps_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Version String
|
||||
Draw_ColoredString(vid.width - 40, y + 5, NZP_VERSION, 1, 1, 1, 1);
|
||||
|
@ -1023,7 +1042,7 @@ void M_Menu_Maps_Draw (void)
|
|||
if (m_maps_cursor == i) {
|
||||
if (custom_maps[i + multiplier].map_use_thumbnail == 1) {
|
||||
menu_cuthum = Draw_CachePic(custom_maps[i + multiplier].map_thumbnail_path);
|
||||
Draw_StretchPic(x_map_info_disp + 305, y + 55, menu_cuthum, 274, 155);
|
||||
//Draw_StretchPic(x_map_info_disp + 305, y + 55, menu_cuthum, 274, 155);
|
||||
}
|
||||
|
||||
if (custom_maps[i + multiplier].map_name_pretty != 0)
|
||||
|
@ -1182,9 +1201,17 @@ void M_Menu_Maps_Key (int key)
|
|||
Cbuf_AddText ("maxplayers 1\n");
|
||||
Cbuf_AddText ("deathmatch 0\n");
|
||||
Cbuf_AddText ("coop 0\n");
|
||||
|
||||
char map_selection[MAX_QPATH];
|
||||
strcpy(map_selection, custom_maps[m_maps_cursor + multiplier].map_name);
|
||||
Cbuf_AddText (va("map %s\n", custom_maps[m_maps_cursor + multiplier].map_name));
|
||||
|
||||
loadingScreen = 1;
|
||||
loadname2 = custom_maps[m_maps_cursor + multiplier].map_name;
|
||||
if (custom_maps[m_maps_cursor + multiplier].map_name_pretty != 0)
|
||||
loadnamespec = custom_maps[m_maps_cursor + multiplier].map_name_pretty;
|
||||
else
|
||||
loadnamespec = custom_maps[m_maps_cursor + multiplier].map_name;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1917,7 +1944,7 @@ void M_Options_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Version String
|
||||
Draw_ColoredString(vid.width - 40, y + 5, NZP_VERSION, 1, 1, 1, 1);
|
||||
|
@ -1944,7 +1971,7 @@ void M_Options_Draw (void)
|
|||
Draw_ColoredStringScale(10, y + 85, "Control Settings", 1, 1, 1, 1, 1.5f);
|
||||
|
||||
// Divider
|
||||
Draw_FillByColor(10, y + 105, 240, 3, 1, 1);
|
||||
Draw_FillByColor(10, y + 105, 240, 3, 1, 1, 1, 1);
|
||||
|
||||
// Console
|
||||
if (options_cursor == 3)
|
||||
|
@ -1968,7 +1995,7 @@ void M_Options_Draw (void)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
extern qboolean console_enabled;
|
||||
void M_Options_Key (int k)
|
||||
{
|
||||
switch (k)
|
||||
|
@ -2001,6 +2028,7 @@ void M_Options_Key (int k)
|
|||
case 3:
|
||||
m_state = m_none;
|
||||
paused_hack = false;
|
||||
console_enabled = true;
|
||||
Con_ToggleConsole_f();
|
||||
break;
|
||||
case 4:
|
||||
|
@ -2062,7 +2090,7 @@ void M_Graphics_Settings_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Header
|
||||
Draw_ColoredStringScale(10, y + 10, "GRAPHICS SETTINGS", 1, 1, 1, 1, 3.0f);
|
||||
|
@ -2281,7 +2309,7 @@ void M_Control_Settings_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Header
|
||||
Draw_ColoredStringScale(10, y + 10, "CONTROL SETTINGS", 1, 1, 1, 1, 3.0f);
|
||||
|
@ -2604,7 +2632,7 @@ void M_Keys_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Header
|
||||
Draw_ColoredStringScale(10, y + 10, "CONTROLS", 1, 1, 1, 1, 3.0f);
|
||||
|
@ -2863,7 +2891,7 @@ void M_Credits_Draw (void)
|
|||
Draw_BgMenu();
|
||||
|
||||
// Fill black to make everything easier to see
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0.4);
|
||||
Draw_FillByColor(0, 0, 1280, 720, 0, 0, 0, 0.4);
|
||||
|
||||
// Version String
|
||||
Draw_ColoredString(vid.width - 40, y + 5, NZP_VERSION, 1, 1, 1, 1);
|
||||
|
@ -3883,6 +3911,8 @@ void M_Draw (void)
|
|||
|
||||
if (!m_recursiveDraw)
|
||||
{
|
||||
//scr_copyeverything = 1;
|
||||
|
||||
if (scr_con_current)
|
||||
{
|
||||
Draw_ConsoleBackground ();
|
||||
|
|
|
@ -3069,6 +3069,7 @@ void PF_rumble (void)
|
|||
IN_StartRumble(intensity_small, intensity_large, duration);
|
||||
}
|
||||
#endif
|
||||
|
||||
static builtin_t pr_builtin[] =
|
||||
{
|
||||
PF_Fixme,
|
||||
|
|
|
@ -572,6 +572,9 @@ void SV_WriteEntitiesToClient (edict_t *clent, sizebuf_t *msg)
|
|||
for (e=1 ; e<sv.num_edicts ; e++, ent = NEXT_EDICT(ent))
|
||||
{
|
||||
|
||||
if (ent->v.effects == EF_NODRAW) //sB adding back NODRAW for limbs
|
||||
continue;
|
||||
|
||||
if (ent != clent) // clent is ALLWAYS sent
|
||||
{
|
||||
// ignore ents without visible models
|
||||
|
|
|
@ -209,12 +209,12 @@ void Sys_Error (const char *error, ...)
|
|||
q_vsnprintf (text, sizeof(text), error, argptr);
|
||||
va_end (argptr);
|
||||
|
||||
f = fopen ("/switch/nzportable/error.log", "w");
|
||||
/*f = fopen ("/switch/nzportable/error.log", "w");
|
||||
if (f)
|
||||
{
|
||||
fprintf (f, "Error: %s\n", text);
|
||||
fclose (f);
|
||||
}
|
||||
}*/
|
||||
|
||||
fputs (errortxt1, stderr);
|
||||
Host_Shutdown ();
|
||||
|
|
|
@ -406,6 +406,7 @@ void Sys_Error (const char *error, ...)
|
|||
{
|
||||
va_list argptr;
|
||||
char text[1024];
|
||||
FILE *f;
|
||||
|
||||
host_parms->errstate++;
|
||||
|
||||
|
@ -418,6 +419,13 @@ void Sys_Error (const char *error, ...)
|
|||
sceClibPrintf(errortxt2);
|
||||
sceClibPrintf(text);
|
||||
sceClibPrintf("\n\n");
|
||||
|
||||
f = fopen ("ux0:data/nzp/error.log", "w");
|
||||
if (f)
|
||||
{
|
||||
fprintf (f, "Error: %s\n", text);
|
||||
fclose (f);
|
||||
}
|
||||
#endif
|
||||
|
||||
fputs (errortxt1, stderr);
|
||||
|
|
|
@ -115,7 +115,7 @@ static void *Z_TagMalloc (int size, int tag)
|
|||
memblock_t *start, *rover, *newblock, *base;
|
||||
|
||||
if (!tag)
|
||||
Sys_Error ("Z_TagMalloc: tried to use a 0 tag");
|
||||
Host_Error ("Z_TagMalloc: tried to use a 0 tag");
|
||||
|
||||
//
|
||||
// scan through the block list looking for the first free block
|
||||
|
@ -181,11 +181,11 @@ static void Z_CheckHeap (void)
|
|||
if (block->next == &mainzone->blocklist)
|
||||
break; // all blocks have been hit
|
||||
if ( (byte *)block + block->size != (byte *)block->next)
|
||||
Sys_Error ("Z_CheckHeap: block size does not touch the next block\n");
|
||||
Host_Error ("Z_CheckHeap: block size does not touch the next block\n");
|
||||
if ( block->next->prev != block)
|
||||
Sys_Error ("Z_CheckHeap: next block doesn't have proper back link\n");
|
||||
Host_Error ("Z_CheckHeap: next block doesn't have proper back link\n");
|
||||
if (!block->tag && !block->next->tag)
|
||||
Sys_Error ("Z_CheckHeap: two consecutive free blocks\n");
|
||||
Host_Error ("Z_CheckHeap: two consecutive free blocks\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -202,7 +202,7 @@ void *Z_Malloc (int size)
|
|||
Z_CheckHeap (); // DEBUG
|
||||
buf = Z_TagMalloc (size, 1);
|
||||
if (!buf)
|
||||
Sys_Error ("Z_Malloc: failed on allocation of %i bytes",size);
|
||||
Host_Error ("Z_Malloc: failed on allocation of %i bytes",size);
|
||||
Q_memset (buf, 0, size);
|
||||
|
||||
return buf;
|
||||
|
@ -425,6 +425,7 @@ void Hunk_Print_f (void)
|
|||
Hunk_AllocName
|
||||
===================
|
||||
*/
|
||||
|
||||
void *Hunk_AllocName (int size, const char *name)
|
||||
{
|
||||
hunk_t *h;
|
||||
|
@ -434,7 +435,7 @@ void *Hunk_AllocName (int size, const char *name)
|
|||
#endif
|
||||
|
||||
if (size < 0)
|
||||
Sys_Error ("Hunk_Alloc: bad size: %i", size);
|
||||
Sys_Error("Not enough bytes");
|
||||
|
||||
size = sizeof(hunk_t) + ((size+15)&~15);
|
||||
|
||||
|
|
Loading…
Reference in a new issue