r_clearcolor currently doesn't work for GL. Broke it while fixing it. It

doesn't matter if you don't use noclip in uquake for map debugging.  On
the upside, I fly should work in qw-server now.  MegaTF fans rejoice!
This commit is contained in:
Joseph Carter 2000-02-27 03:34:54 +00:00
parent 7a66abafb0
commit 83a09156f1
4 changed files with 130 additions and 76 deletions

View file

@ -940,29 +940,48 @@ R_RenderScene ( void ) {
R_Clear
*/
void
R_Clear ( void ) {
if (gl_ztrick.value) {
R_Clear ( void )
{
static int l;
if (gl_ztrick.value)
{
static int trickframe;
if (gl_clear.value)
{
if (l != (int)r_clearcolor.value)
{
l = (int)r_clearcolor.value;
glClearColor (host_basepal[l*3]/255.0,
host_basepal[l*3+1]/255.0,
host_basepal[l*3+2]/255.0,
1.0);
}
glClear (GL_COLOR_BUFFER_BIT);
}
trickframe++;
if (trickframe & 1) {
if (trickframe & 1)
{
gldepthmin = 0;
gldepthmax = 0.49999;
glDepthFunc (GL_LEQUAL);
} else {
}
else
{
gldepthmin = 1;
gldepthmax = 0.5;
glDepthFunc (GL_GEQUAL);
}
} else {
if (gl_clear.value) {
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
} else {
glClear (GL_DEPTH_BUFFER_BIT);
}
else
{
if (gl_clear.value)
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
else
glClear (GL_DEPTH_BUFFER_BIT);
gldepthmin = 0;
gldepthmax = 1;
glDepthFunc (GL_LEQUAL);
@ -1017,10 +1036,10 @@ R_RenderView ( void ) {
if (!r_worldentity.model || !cl.worldmodel)
Sys_Error ("R_RenderView: NULL worldmodel");
if ((int)cl_sbar.value == 1)
TileBC (0, 0, vid.width, vid.height - sb_lines);
else
TileBC (0, 0, vid.width, vid.height);
// if ((int)cl_sbar.value == 1)
// TileBC (0, 0, vid.width, vid.height - sb_lines);
// else
// TileBC (0, 0, vid.width, vid.height);
if (r_speeds.value)
{

View file

@ -300,7 +300,7 @@ void GL_Init (void)
// Con_Printf ("%s %s\n", gl_renderer, gl_version);
glClearColor (1,0,0,0);
glClearColor (0,0,0,0);
glCullFace(GL_FRONT);
glEnable(GL_TEXTURE_2D);

View file

@ -1,4 +1,5 @@
/*
sv_ccmds.c
Copyright (C) 1996-1997 Id Software, Inc.
Portions Copyright (C) 1999,2000 Nelson Rush.
Copyright (C) 1999,2000 contributors of the QuakeForge project
@ -625,62 +626,6 @@ void SV_Localinfo_f (void)
}
/*
===========
SV_User_f
Examine a users info strings
===========
*/
void SV_User_f (void)
{
if (Cmd_Argc() != 2)
{
Con_Printf ("Usage: info <userid>\n");
return;
}
if (!SV_SetPlayer ())
return;
Info_Print (host_client->userinfo);
}
/*
================
SV_Gamedir
Sets the fake *gamedir to a different directory.
================
*/
void SV_Gamedir (void)
{
char *dir;
if (Cmd_Argc() == 1)
{
Con_Printf ("Current *gamedir: %s\n", Info_ValueForKey (svs.info, "*gamedir"));
return;
}
if (Cmd_Argc() != 2)
{
Con_Printf ("Usage: sv_gamedir <newgamedir>\n");
return;
}
dir = Cmd_Argv(1);
if (strstr(dir, "..") || strstr(dir, "/")
|| strstr(dir, "\\") || strstr(dir, ":") )
{
Con_Printf ("*Gamedir should be a single filename, not a path\n");
return;
}
Info_SetValueForStarKey (svs.info, "*gamedir", dir, MAX_SERVERINFO_STRING);
}
/*
================
SV_Floodport_f
@ -740,6 +685,69 @@ void SV_Floodprotmsg_f (void)
snprintf(fp_msg, sizeof(fp_msg), "%s", Cmd_Argv(1));
}
/*
SV_Fly_f
*/
void
SV_Fly_f ( void )
{
if (!sv_allow_cheats)
{
Con_Printf ("You must run the server with -cheats to enable this command.\n");
return;
}
if (!SV_SetPlayer())
return;
if (sv_player->v.movetype != MOVETYPE_FLY)
{
sv_player->v.movetype = MOVETYPE_FLY;
SV_ClientPrintf (host_client, PRINT_HIGH, "Fly mode ON\n");
}
else
{
sv_player->v.movetype = MOVETYPE_WALK;
SV_ClientPrintf (host_client, PRINT_HIGH, "Fly mode OFF\n");
}
}
/*
================
SV_Gamedir
Sets the fake *gamedir to a different directory.
================
*/
void SV_Gamedir (void)
{
char *dir;
if (Cmd_Argc() == 1)
{
Con_Printf ("Current *gamedir: %s\n", Info_ValueForKey (svs.info, "*gamedir"));
return;
}
if (Cmd_Argc() != 2)
{
Con_Printf ("Usage: sv_gamedir <newgamedir>\n");
return;
}
dir = Cmd_Argv(1);
if (strstr(dir, "..") || strstr(dir, "/")
|| strstr(dir, "\\") || strstr(dir, ":") )
{
Con_Printf ("*Gamedir should be a single filename, not a path\n");
return;
}
Info_SetValueForStarKey (svs.info, "*gamedir", dir, MAX_SERVERINFO_STRING);
}
/*
================
SV_Gamedir_f
@ -871,6 +879,27 @@ void SV_SnapAll_f (void)
}
}
/*
===========
SV_User_f
Examine a users info strings
===========
*/
void SV_User_f (void)
{
if (Cmd_Argc() != 2)
{
Con_Printf ("Usage: info <userid>\n");
return;
}
if (!SV_SetPlayer ())
return;
Info_Print (host_client->userinfo);
}
/*
==================
SV_InitOperatorCommands
@ -908,6 +937,7 @@ void SV_InitOperatorCommands (void)
Cmd_AddCommand ("sv_gamedir", SV_Gamedir);
Cmd_AddCommand ("floodprot", SV_Floodprot_f);
Cmd_AddCommand ("floodprotmsg", SV_Floodprotmsg_f);
Cmd_AddCommand ("fly", SV_Fly_f);
cl_warncmd.value = 1;
}

View file

@ -1,4 +1,5 @@
/*
sv_phys.c
Copyright (C) 1996-1997 Id Software, Inc.
Copyright (C) 1999,2000 contributors of the QuakeForge project
Please see the file "AUTHORS" for a list of contributors
@ -19,7 +20,6 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// sv_phys.c
#include <ctype.h>
#include <quakedef.h>
@ -87,7 +87,8 @@ void SV_CheckAllEnts (void)
continue;
if (check->v.movetype == MOVETYPE_PUSH
|| check->v.movetype == MOVETYPE_NONE
|| check->v.movetype == MOVETYPE_NOCLIP)
|| check->v.movetype == MOVETYPE_NOCLIP
|| check->v.movetype == MOVETYPE_FLY)
continue;
if (SV_TestEntityPosition (check))
@ -742,8 +743,8 @@ void SV_Physics_Toss (edict_t *ent)
SV_CheckVelocity (ent);
// add gravity
if (ent->v.movetype != MOVETYPE_FLY
&& ent->v.movetype != MOVETYPE_FLYMISSILE)
if (ent->v.movetype != MOVETYPE_FLYMISSILE
&& ent->v.movetype != MOVETYPE_FLY)
SV_AddGravity (ent, 1.0);
// move angles
@ -867,9 +868,13 @@ void SV_RunEntity (edict_t *ent)
case MOVETYPE_STEP:
SV_Physics_Step (ent);
break;
case MOVETYPE_FLY:
if (!SV_RunThink (ent))
return;
SV_FlyMove (ent, host_frametime, NULL);
break;
case MOVETYPE_TOSS:
case MOVETYPE_BOUNCE:
case MOVETYPE_FLY:
case MOVETYPE_FLYMISSILE:
SV_Physics_Toss (ent);
break;