DEATH TO cl.items!

This commit is contained in:
Joseph Carter 2000-03-06 14:28:53 +00:00
parent e8e7a41627
commit 5bfd333ae6
6 changed files with 51 additions and 114 deletions

View file

@ -340,7 +340,7 @@ typedef struct
scoreboard_t *scores; // [cl.maxclients]
usercmd_t cmd; // last command sent to the server
int items; // inventory bit flags
// int items; // inventory bit flags
vec3_t mviewangles[2]; // in demos, viewangles is lerped
// between these
vec3_t mvelocity[2]; // update by server, used for lean+bob

View file

@ -643,13 +643,8 @@ R_DrawViewModel ( void ) {
if (!r_drawentities->value)
return;
#ifdef QUAKEWORLD
if (cl.stats[STAT_ITEMS] & IT_INVISIBILITY)
return;
#else
if (cl.items & IT_INVISIBILITY)
return;
#endif
if (cl.stats[STAT_HEALTH] <= 0)
return;

View file

@ -1,4 +1,5 @@
/*
r_main.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,10 +20,9 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// r_main.c
#include "quakedef.h"
#include "r_local.h"
#include <quakedef.h>
#include <r_local.h>
#include <cvar.h>
#include <mathlib.h>
#include <screen.h>
@ -730,11 +730,7 @@ void R_DrawViewModel (void)
#endif // QUAKEWORLD
return;
#ifdef QUAKEWORLD
if (cl.stats[STAT_ITEMS] & IT_INVISIBILITY)
#else
if (cl.items & IT_INVISIBILITY)
#endif // QUAKEWORLD
return;
if (cl.stats[STAT_HEALTH] <= 0)

View file

@ -38,9 +38,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
extern void M_DrawPic (int x, int y, qpic_t *pic);
int sb_updates; // if >= vid.numpages, no update needed
int sb_updates; // if >= vid.numpages, no update needed
#define STAT_MINUS 10 // num frame for '-' stats digit
qpic_t *sb_nums[2][11];
qpic_t *sb_colon, *sb_slash;
qpic_t *sb_ibar;
@ -96,7 +97,6 @@ static qboolean largegame = false;
Sbar_Items
Return a target-independant items list
*/
int
Sbar_Items ( void )
{
@ -106,6 +106,7 @@ Sbar_Items ( void )
return cl.items;
#endif // QUAKEWORLD
}
*/
/*
===============
Sbar_ShowScores
@ -742,7 +743,7 @@ void Sbar_DrawInventory (void)
// weapons
for (i=0 ; i<7 ; i++)
{
if (Sbar_Items() & (IT_SHOTGUN << i) ) {
if (cl.stats[STAT_ITEMS] & (IT_SHOTGUN << i) ) {
time = cl.item_gettime[i];
flashon = (int)((cl.time - time)*10);
if (flashon < 0)
@ -775,7 +776,7 @@ void Sbar_DrawInventory (void)
int grenadeflashing=0;
for (i=0 ; i<4 ; i++) {
if (Sbar_Items() & (1<<hipweapons[i]) ) {
if (cl.stats[STAT_ITEMS] & (1<<hipweapons[i]) ) {
time = cl.item_gettime[hipweapons[i]];
flashon = (int)((cl.time - time)*10);
if (flashon < 0)
@ -790,14 +791,14 @@ void Sbar_DrawInventory (void)
// check grenade launcher
if (i==2) {
if (Sbar_Items() & HIT_PROXIMITY_GUN) {
if (cl.stats[STAT_ITEMS] & HIT_PROXIMITY_GUN) {
if (flashon) {
grenadeflashing = 1;
Sbar_DrawPic (96, -16, hsb_weapons[flashon][2]);
}
}
} else if (i==3) {
if (Sbar_Items() & (IT_SHOTGUN << 4)) {
if (cl.stats[STAT_ITEMS] & (IT_SHOTGUN << 4)) {
if (flashon && !grenadeflashing) {
Sbar_DrawPic (96, -16, hsb_weapons[flashon][3]);
} else if (!grenadeflashing) {
@ -850,7 +851,7 @@ void Sbar_DrawInventory (void)
// items
for (i=0 ; i<6 ; i++)
if (Sbar_Items() & (1<<(17+i))) {
if (cl.stats[STAT_ITEMS] & (1<<(17+i))) {
time = cl.item_gettime[17+i];
if (time && time > cl.time - 2 && flashon ) { // flash frame
sb_updates = 0;
@ -872,7 +873,7 @@ void Sbar_DrawInventory (void)
// hipnotic items
if (hipnotic) {
for (i=0 ; i<2 ; i++) {
if (Sbar_Items() & (1<<(24+i))) {
if (cl.stats[STAT_ITEMS] & (1<<(24+i))) {
time = cl.item_gettime[24+i];
if (time && time > cl.time - 2 && flashon ) { // flash frame
sb_updates = 0;
@ -889,7 +890,7 @@ void Sbar_DrawInventory (void)
if (rogue) {
// new rogue items
for (i=0 ; i<2 ; i++) {
if (Sbar_Items() & (1<<(29+i))) {
if (cl.stats[STAT_ITEMS] & (1<<(29+i))) {
time = cl.item_gettime[29+i];
if (time && time > cl.time - 2 && flashon ) { // flash frame
@ -906,7 +907,7 @@ void Sbar_DrawInventory (void)
#endif // !QUAKEWORLD
// sigils
for (i=0 ; i<4 ; i++) {
if (Sbar_Items() & (1<<(28+i))) {
if (cl.stats[STAT_ITEMS] & (1<<(28+i))) {
time = cl.item_gettime[28+i];
if (time && time > cl.time - 2 && flashon ) { // flash frame
sb_updates = 0;
@ -1065,20 +1066,20 @@ void Sbar_DrawFace (void)
// PGM 01/19/97 - team color drawing
#endif // !QUAKEWORLD
if ( (Sbar_Items() & (IT_INVISIBILITY | IT_INVULNERABILITY) )
if ( (cl.stats[STAT_ITEMS] & (IT_INVISIBILITY | IT_INVULNERABILITY) )
== (IT_INVISIBILITY | IT_INVULNERABILITY) ) {
Sbar_DrawPic (112, 0, sb_face_invis_invuln);
return;
}
if (Sbar_Items() & IT_QUAD) {
if (cl.stats[STAT_ITEMS] & IT_QUAD) {
Sbar_DrawPic (112, 0, sb_face_quad );
return;
}
if (Sbar_Items() & IT_INVISIBILITY) {
if (cl.stats[STAT_ITEMS] & IT_INVISIBILITY) {
Sbar_DrawPic (112, 0, sb_face_invis );
return;
}
if (Sbar_Items() & IT_INVULNERABILITY) {
if (cl.stats[STAT_ITEMS] & IT_INVULNERABILITY) {
Sbar_DrawPic (112, 0, sb_face_invuln);
return;
}
@ -1112,15 +1113,15 @@ void Sbar_DrawNormal (void)
#ifdef UQUAKE
if (hipnotic) {
if (Sbar_Items() & IT_KEY1)
if (cl.stats[STAT_ITEMS] & IT_KEY1)
Sbar_DrawPic (209, 3, sb_items[0]);
if (Sbar_Items() & IT_KEY2)
if (cl.stats[STAT_ITEMS] & IT_KEY2)
Sbar_DrawPic (209, 12, sb_items[1]);
}
#endif // !QUAKEWORLD
// armor
if (Sbar_Items() & IT_INVULNERABILITY) {
if (cl.stats[STAT_ITEMS] & IT_INVULNERABILITY) {
Sbar_DrawNum (24, 0, 666, 3, 1);
Sbar_DrawPic (0, 0, draw_disc);
} else {
@ -1128,21 +1129,21 @@ void Sbar_DrawNormal (void)
if (rogue) {
Sbar_DrawNum (24, 0, cl.stats[STAT_ARMOR], 3,
cl.stats[STAT_ARMOR] <= 25);
if (Sbar_Items() & RIT_ARMOR3)
if (cl.stats[STAT_ITEMS] & RIT_ARMOR3)
Sbar_DrawPic (0, 0, sb_armor[2]);
else if (Sbar_Items() & RIT_ARMOR2)
else if (cl.stats[STAT_ITEMS] & RIT_ARMOR2)
Sbar_DrawPic (0, 0, sb_armor[1]);
else if (Sbar_Items() & RIT_ARMOR1)
else if (cl.stats[STAT_ITEMS] & RIT_ARMOR1)
Sbar_DrawPic (0, 0, sb_armor[0]);
} else {
#endif // QUAKEWORLD
Sbar_DrawNum (24, 0, cl.stats[STAT_ARMOR], 3
, cl.stats[STAT_ARMOR] <= 25);
if (Sbar_Items() & IT_ARMOR3)
if (cl.stats[STAT_ITEMS] & IT_ARMOR3)
Sbar_DrawPic (0, 0, sb_armor[2]);
else if (Sbar_Items() & IT_ARMOR2)
else if (cl.stats[STAT_ITEMS] & IT_ARMOR2)
Sbar_DrawPic (0, 0, sb_armor[1]);
else if (Sbar_Items() & IT_ARMOR1)
else if (cl.stats[STAT_ITEMS] & IT_ARMOR1)
Sbar_DrawPic (0, 0, sb_armor[0]);
#ifdef UQUAKE
}
@ -1159,29 +1160,29 @@ void Sbar_DrawNormal (void)
// ammo icon
#ifdef UQUAKE
if (rogue) {
if (Sbar_Items() & RIT_SHELLS)
if (cl.stats[STAT_ITEMS] & RIT_SHELLS)
Sbar_DrawPic (224, 0, sb_ammo[0]);
else if (Sbar_Items() & RIT_NAILS)
else if (cl.stats[STAT_ITEMS] & RIT_NAILS)
Sbar_DrawPic (224, 0, sb_ammo[1]);
else if (Sbar_Items() & RIT_ROCKETS)
else if (cl.stats[STAT_ITEMS] & RIT_ROCKETS)
Sbar_DrawPic (224, 0, sb_ammo[2]);
else if (Sbar_Items() & RIT_CELLS)
else if (cl.stats[STAT_ITEMS] & RIT_CELLS)
Sbar_DrawPic (224, 0, sb_ammo[3]);
else if (Sbar_Items() & RIT_LAVA_NAILS)
else if (cl.stats[STAT_ITEMS] & RIT_LAVA_NAILS)
Sbar_DrawPic (224, 0, rsb_ammo[0]);
else if (Sbar_Items() & RIT_PLASMA_AMMO)
else if (cl.stats[STAT_ITEMS] & RIT_PLASMA_AMMO)
Sbar_DrawPic (224, 0, rsb_ammo[1]);
else if (Sbar_Items() & RIT_MULTI_ROCKETS)
else if (cl.stats[STAT_ITEMS] & RIT_MULTI_ROCKETS)
Sbar_DrawPic (224, 0, rsb_ammo[2]);
} else {
#endif // !QUAKEWORLD
if (Sbar_Items() & IT_SHELLS)
if (cl.stats[STAT_ITEMS] & IT_SHELLS)
Sbar_DrawPic (224, 0, sb_ammo[0]);
else if (Sbar_Items() & IT_NAILS)
else if (cl.stats[STAT_ITEMS] & IT_NAILS)
Sbar_DrawPic (224, 0, sb_ammo[1]);
else if (Sbar_Items() & IT_ROCKETS)
else if (cl.stats[STAT_ITEMS] & IT_ROCKETS)
Sbar_DrawPic (224, 0, sb_ammo[2]);
else if (Sbar_Items() & IT_CELLS)
else if (cl.stats[STAT_ITEMS] & IT_CELLS)
Sbar_DrawPic (224, 0, sb_ammo[3]);
#ifdef UQUAKE
}

View file

@ -396,13 +396,13 @@ void CL_ParseClientdata (int bits)
// [always sent] if (bits & SU_ITEMS)
i = MSG_ReadLong ();
if (cl.items != i)
if (cl.stats[STAT_ITEMS] != i)
{ // set flash times
Sbar_Changed ();
for (j=0 ; j<32 ; j++)
if ( (i & (1<<j)) && !(cl.items & (1<<j)))
if ( (i & (1<<j)) && !(cl.stats[STAT_ITEMS] & (1<<j)))
cl.item_gettime[j] = cl.time;
cl.items = i;
cl.stats[STAT_ITEMS] = i;
}
cl.onground = (bits & SU_ONGROUND) != 0;

View file

@ -1,4 +1,5 @@
/*
view.c - player eye positioning
Copyright (C) 1996-1997 Id Software, Inc.
This program is free software; you can redistribute it and/or
@ -17,11 +18,10 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
// view.c -- player eye positioning
#include "quakedef.h"
#include "r_local.h"
#include "draw.h" /* For Draw_Crosshair() */
#include <quakedef.h>
#include <r_local.h>
#include <draw.h> /* For Draw_Crosshair() */
#include <mathlib.h>
#include <qtypes.h>
#include <qstructs.h>
@ -39,64 +39,39 @@ when crossing a water boudnary.
*/
//cvar_t lcd_x = {"lcd_x", "0"}; // FIXME: make this work sometime...
cvar_t *lcd_x;
//cvar_t lcd_yaw = {"lcd_yaw", "0"};
cvar_t *lcd_x; // FIXME: make this work sometime...
cvar_t *lcd_yaw;
//cvar_t scr_ofsx = {"scr_ofsx", "0"};
cvar_t *scr_ofsx;
//cvar_t scr_ofsy = {"scr_ofsy", "0"};
cvar_t *scr_ofsy;
//cvar_t scr_ofsz = {"scr_ofsz", "0"};
cvar_t *scr_ofsz;
//cvar_t cl_rollspeed = {"cl_rollspeed", "200"};
cvar_t *cl_rollspeed;
//cvar_t cl_rollangle = {"cl_rollangle", "2.0"};
cvar_t *cl_rollangle;
//cvar_t cl_bob = {"cl_bob","0.02"};
cvar_t *cl_bob;
//cvar_t cl_bobcycle = {"cl_bobcycle","0.6"};
cvar_t *cl_bobcycle;
//cvar_t cl_bobup = {"cl_bobup","0.5"};
cvar_t *cl_bobup;
//cvar_t v_kicktime = {"v_kicktime", "0.5"};
cvar_t *v_kicktime;
//cvar_t v_kickroll = {"v_kickroll", "0.6"};
cvar_t *v_kickroll;
//cvar_t v_kickpitch = {"v_kickpitch", "0.6"};
cvar_t *v_kickpitch;
//cvar_t v_iyaw_cycle = {"v_iyaw_cycle", "2"};
cvar_t *v_iyaw_cycle;
//cvar_t v_iroll_cycle = {"v_iroll_cycle", "0.5"};
cvar_t *v_iroll_cycle;
//cvar_t v_ipitch_cycle = {"v_ipitch_cycle", "1"};
cvar_t *v_ipitch_cycle;
//cvar_t v_iyaw_level = {"v_iyaw_level", "0.3"};
cvar_t *v_iyaw_level;
//cvar_t v_iroll_level = {"v_iroll_level", "0.1"};
cvar_t *v_iroll_level;
//cvar_t v_ipitch_level = {"v_ipitch_level", "0.3"};
cvar_t *v_ipitch_level;
//cvar_t v_idlescale = {"v_idlescale", "0"};
cvar_t *v_idlescale;
//cvar_t crosshair = {"crosshair", "0", CVAR_ARCHIVE};
cvar_t *crosshair;
//cvar_t crosshaircolor = {"crosshaircolor", "79",CVAR_ARCHIVE};
cvar_t *crosshaircolor;
//cvar_t cl_crossx = {"cl_crossx", "0",CVAR_ARCHIVE};
cvar_t *cl_crossx;
//cvar_t cl_crossy = {"cl_crossy", "0", CVAR_ARCHIVE};
cvar_t *cl_crossy;
//cvar_t gl_cshiftpercent = {"gl_cshiftpercent", "100"};
cvar_t *gl_cshiftpercent;
float v_dmg_time, v_dmg_roll, v_dmg_pitch;
@ -169,9 +144,7 @@ float V_CalcBob (void)
//=============================================================================
//cvar_t v_centermove = {"v_centermove", "0.15"};
cvar_t *v_centermove;
//cvar_t v_centerspeed = {"v_centerspeed","500"};
cvar_t *v_centerspeed;
@ -473,28 +446,28 @@ V_CalcPowerupCshift
*/
void V_CalcPowerupCshift (void)
{
if (cl.items & IT_QUAD)
if (cl.stats[STAT_ITEMS] & IT_QUAD)
{
cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0;
cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 0;
cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 255;
cl.cshifts[CSHIFT_POWERUP].percent = 30;
}
else if (cl.items & IT_SUIT)
else if (cl.stats[STAT_ITEMS] & IT_SUIT)
{
cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 0;
cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255;
cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 0;
cl.cshifts[CSHIFT_POWERUP].percent = 20;
}
else if (cl.items & IT_INVISIBILITY)
else if (cl.stats[STAT_ITEMS] & IT_INVISIBILITY)
{
cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 100;
cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 100;
cl.cshifts[CSHIFT_POWERUP].destcolor[2] = 100;
cl.cshifts[CSHIFT_POWERUP].percent = 100;
}
else if (cl.items & IT_INVULNERABILITY)
else if (cl.stats[STAT_ITEMS] & IT_INVULNERABILITY)
{
cl.cshifts[CSHIFT_POWERUP].destcolor[0] = 255;
cl.cshifts[CSHIFT_POWERUP].destcolor[1] = 255;
@ -942,68 +915,40 @@ void V_Init (void)
Cmd_AddCommand ("bf", V_BonusFlash_f);
Cmd_AddCommand ("centerview", V_StartPitchDrift);
// Cvar_RegisterVariable (&lcd_x);
lcd_x = Cvar_Get ("lcd_x","0",0,"None");
// Cvar_RegisterVariable (&lcd_yaw);
lcd_yaw = Cvar_Get ("lcd_yaw","0",0,"None");
// Cvar_RegisterVariable (&v_centermove);
v_centermove = Cvar_Get ("v_centermove","0.15",0,"None");
// Cvar_RegisterVariable (&v_centerspeed);
v_centerspeed = Cvar_Get ("v_centerspeed","500",0,"None");
// Cvar_RegisterVariable (&v_iyaw_cycle);
v_iyaw_cycle = Cvar_Get ("v_iyaw_cycle","2",0,"None");
// Cvar_RegisterVariable (&v_iroll_cycle);
v_iroll_cycle = Cvar_Get ("v_iroll_cycle","0.5",0,"None");
// Cvar_RegisterVariable (&v_ipitch_cycle);
v_ipitch_cycle = Cvar_Get ("v_ipitch_cycle","1",0,"None");
// Cvar_RegisterVariable (&v_iyaw_level);
v_iyaw_level = Cvar_Get ("v_iyaw_level","0.3",0,"None");
// Cvar_RegisterVariable (&v_iroll_level);
v_iroll_level = Cvar_Get ("v_iroll_level","0.1",0,"None");
// Cvar_RegisterVariable (&v_ipitch_level);
v_ipitch_level = Cvar_Get ("v_ipitch_level","0.3",0,"None");
// Cvar_RegisterVariable (&v_idlescale);
v_idlescale = Cvar_Get ("v_idlescale","0",0,"None");
// Cvar_RegisterVariable (&crosshaircolor);
crosshaircolor = Cvar_Get ("crosshaircolor","79",CVAR_ARCHIVE,"None");
// Cvar_RegisterVariable (&crosshair);
crosshair = Cvar_Get ("crosshair","0",CVAR_ARCHIVE,"None");
// Cvar_RegisterVariable (&cl_crossx);
cl_crossx = Cvar_Get ("cl_crossx","0",CVAR_ARCHIVE,"None");
// Cvar_RegisterVariable (&cl_crossy);
cl_crossy = Cvar_Get ("cl_crossy","0",CVAR_ARCHIVE,"None");
// Cvar_RegisterVariable (&gl_cshiftpercent);
gl_cshiftpercent = Cvar_Get ("gl_cshiftpercent","100",0,"None");
// Cvar_RegisterVariable (&scr_ofsx);
scr_ofsx = Cvar_Get ("scr_ofsx","0",0,"None");
// Cvar_RegisterVariable (&scr_ofsy);
scr_ofsy = Cvar_Get ("scr_ofsy","0",0,"None");
// Cvar_RegisterVariable (&scr_ofsz);
scr_ofsz = Cvar_Get ("scr_ofsz","0",0,"None");
// Cvar_RegisterVariable (&cl_rollspeed);
cl_rollspeed = Cvar_Get ("cl_rollspeed","200",0,"None");
// Cvar_RegisterVariable (&cl_rollangle);
cl_rollangle = Cvar_Get ("cl_rollangle","2.0",0,"None");
// Cvar_RegisterVariable (&cl_bob);
cl_bob = Cvar_Get ("cl_bob","0.02",0,"None");
// Cvar_RegisterVariable (&cl_bobcycle);
cl_bobcycle = Cvar_Get ("cl_bobcycle","0.6",0,"None");
// Cvar_RegisterVariable (&cl_bobup);
cl_bobup = Cvar_Get ("cl_bobup","0.5",0,"None");
// Cvar_RegisterVariable (&v_kicktime);
v_kicktime = Cvar_Get ("v_kicktime","0.5",0,"None");
// Cvar_RegisterVariable (&v_kickroll);
v_kickroll = Cvar_Get ("v_kickroll","0.6",0,"None");
// Cvar_RegisterVariable (&v_kickpitch);
v_kickpitch = Cvar_Get ("v_kickpitch","0.6",0,"None");
BuildGammaTable (1.0); // no gamma yet
// Cvar_RegisterVariable (&v_gamma);
v_gamma = Cvar_Get ("gamma","1",CVAR_ARCHIVE,"None");
}