scoreboard stuff

This commit is contained in:
Bryce Hutchings 2002-06-19 05:21:43 +00:00
parent 3e7c91ab46
commit 500d26beac
4 changed files with 119 additions and 7 deletions

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.97 2002/06/19 05:17:57 niceass
// scoreboard stuff
//
// Revision 1.96 2002/06/16 23:26:23 blaze
// fixed to allow > 16 breakables
//
@ -1656,6 +1659,10 @@ extern cheat_cvar cheats[30];
//extern vmCvar_t cg_RQ3_team_round_going;
extern vmCvar_t cg_RQ3_team1name;
extern vmCvar_t cg_RQ3_team2name;
extern vmCvar_t cg_RQ3_team1model;
extern vmCvar_t cg_RQ3_team2model;
extern vmCvar_t ui_RQ3_teamCount1;
extern vmCvar_t ui_RQ3_teamCount2;
extern vmCvar_t ui_RQ3_numSpectators;

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.86 2002/06/19 05:20:01 niceass
// scoreboard stuff
//
// Revision 1.85 2002/06/16 20:06:13 jbravo
// Reindented all the source files with "indent -kr -ut -i8 -l120 -lc120 -sob -bad -bap"
//
@ -400,6 +403,9 @@ cheat_cvar cheats[30];
//vmCvar_t cg_RQ3_team_round_going;
vmCvar_t cg_RQ3_team1name;
vmCvar_t cg_RQ3_team2name;
vmCvar_t cg_RQ3_team1model;
vmCvar_t cg_RQ3_team2model;
vmCvar_t ui_RQ3_teamCount1;
vmCvar_t ui_RQ3_teamCount2;
vmCvar_t ui_RQ3_numSpectators;
@ -568,6 +574,8 @@ static cvarTable_t cvarTable[] = { // bk001129
// { &cg_RQ3_team_round_going, "cg_RQ3_team_round_going", "0", CVAR_ROM},
{&cg_RQ3_team1name, "g_RQ3_team1name", "0", 0},
{&cg_RQ3_team2name, "g_RQ3_team2name", "0", 0},
{&cg_RQ3_team1model, "g_RQ3_team1model", "grunt/robber", 0},
{&cg_RQ3_team2model, "g_RQ3_team2model", "grunt/police", 0},
{&ui_RQ3_teamCount1, "ui_RQ3_teamCount1", "0", CVAR_ROM},
{&ui_RQ3_teamCount2, "ui_RQ3_teamCount2", "0", CVAR_ROM},
{&ui_RQ3_numSpectators, "ui_RQ3_numSpectators", "0", CVAR_ROM},

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.35 2002/06/19 05:21:20 niceass
// scoreboard stuff
//
// Revision 1.34 2002/06/16 20:06:13 jbravo
// Reindented all the source files with "indent -kr -ut -i8 -l120 -lc120 -sob -bad -bap"
//
@ -107,6 +110,12 @@
//static qboolean localClient; // true if local client has been displayed
void CG_DrawScoreBoardHead(float x, float y, float w, float h,
qhandle_t headModel, qhandle_t headSkin, vec3_t headAngles);
void CG_ScoreBoardHead(team_t team, float x, float y, float w, float h);
#define SB_WIDTH 330
#define SB_FONTSIZEW 7
#define SB_FONTSIZEH 14
@ -239,7 +248,7 @@ static int CG_TeamplayScoreboard(void)
score_t *Score;
int y;
int Alternate, First;
char teamname[128];
// char teamname[128];
int Ping, Frags, Damage; // Averages
char Tmp[128];
@ -340,8 +349,8 @@ static int CG_TeamplayScoreboard(void)
//trap_Cvar_VariableStringBuffer("g_RQ3_team1model", Tmp, sizeof(Tmp));
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, RedD, colorBlack);
trap_Cvar_VariableStringBuffer("g_RQ3_team1name", teamname, sizeof(teamname));
DrawStripText(y, 50, SB_FONTSIZEH, teamname, 100, colorBlack);
//trap_Cvar_VariableStringBuffer("g_RQ3_team1name", teamname, sizeof(teamname));
DrawStripText(y, 50, SB_FONTSIZEH, cg_RQ3_team1name.string, 100, colorBlack);
if (cg_RQ3_matchmode.integer)
DrawRightStripText(y, SB_FONTSIZEH, va("%s - Wins: %d",
@ -350,6 +359,10 @@ static int CG_TeamplayScoreboard(void)
else
DrawRightStripText(y, SB_FONTSIZEH, va("Wins: %d", cg.teamScores[0]), 100, colorWhite);
CG_ScoreBoardHead (TEAM_RED, (SCREEN_WIDTH - SB_WIDTH) / 2 - 44, y - 2, 48, 48);
y += SB_FONTSIZEH + SB_PADDING * 2 + 2;
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, GreyL, colorBlack);
@ -423,8 +436,8 @@ static int CG_TeamplayScoreboard(void)
// *************** BLUE TEAM ************
y += SB_FONTSIZEH * 2;
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, BlueD, colorBlack);
trap_Cvar_VariableStringBuffer("g_RQ3_team2name", teamname, sizeof(teamname));
DrawStripText(y, 50, SB_FONTSIZEH, teamname, 100, colorBlack);
//trap_Cvar_VariableStringBuffer("g_RQ3_team2name", teamname, sizeof(teamname));
DrawStripText(y, 50, SB_FONTSIZEH, cg_RQ3_team2name.string, 100, colorBlack);
if (cg_RQ3_matchmode.integer)
DrawRightStripText(y, SB_FONTSIZEH, va("%s - Wins: %d",
@ -432,6 +445,8 @@ static int CG_TeamplayScoreboard(void)
colorWhite);
else
DrawRightStripText(y, SB_FONTSIZEH, va("Wins: %d", cg.teamScores[1]), 100, colorWhite);
CG_ScoreBoardHead (TEAM_BLUE, (SCREEN_WIDTH - SB_WIDTH) / 2 - 44, y - 2, 48, 48);
y += SB_FONTSIZEH + SB_PADDING * 2 + 2;
@ -1178,3 +1193,82 @@ void CG_DrawWeaponStats(void)
return;
}
/*
CG_FindHead By NiceAss
Used to parse the model cvars and register the model and skin. It
then displays it.
*/
void CG_ScoreBoardHead(team_t team, float x, float y, float w, float h) {
char modelskin[128], filename[128];
char *model = NULL, *skin = NULL;
qhandle_t headModel, headSkin;
vec3_t headAngles;
if (team == TEAM_RED)
strcpy(modelskin, cg_RQ3_team1model.string);
else
strcpy(modelskin, cg_RQ3_team2model.string);
skin = strchr(modelskin, '/');
if (!skin)
return;
*skin = '\0';
skin++;
model = modelskin;
Com_sprintf(filename, 128, "models/players/%s/head.md3", model);
headModel = trap_R_RegisterModel( filename );
if (!headModel)
return;
Com_sprintf(filename, 128, "models/players/%s/head_%s.skin", model, skin);
headSkin = trap_R_RegisterSkin( filename );
if (!headSkin)
return;
VectorClear( headAngles );
headAngles[1] = sin(cg.time * 0.003f) * 20.0f + 180.0f;
headAngles[0] = cos(cg.time * 0.002f) * 8.0f;
CG_DrawScoreBoardHead(x, y, w, h, headModel, headSkin, headAngles);
}
/*
CG_DrawScoreBoardHead By NiceAss
Displays the player model. This is just an altered CG_DrawHead.
*/
void CG_DrawScoreBoardHead(float x, float y, float w, float h,
qhandle_t headModel, qhandle_t headSkin, vec3_t headAngles)
{
clipHandle_t cm;
float len;
vec3_t origin;
vec3_t mins, maxs;
cm = headModel;
if (!cm) {
return;
}
// offset the origin y and z to center the head
trap_R_ModelBounds(cm, mins, maxs);
origin[2] = -0.5 * (mins[2] + maxs[2]);
origin[1] = 0.5 * (mins[1] + maxs[1]);
// calculate distance so the head nearly fills the box
// assume heads are taller than wide
len = 0.7 * (maxs[2] - mins[2]);
origin[0] = len / 0.268; // len / tan( fov/2 )
CG_Draw3DModel(x, y, w, h, headModel, headSkin, origin, headAngles);
}

View file

@ -5,6 +5,9 @@
//-----------------------------------------------------------------------------
//
// $Log$
// Revision 1.90 2002/06/19 05:21:43 niceass
// scoreboard stuff
//
// Revision 1.89 2002/06/18 09:21:48 niceass
// removed some model output
//
@ -469,8 +472,8 @@ static cvarTable_t gameCvarTable[] = {
{&g_RQ3_sniperup, "g_RQ3_sniperup", "0", CVAR_ARCHIVE, 0, qtrue},
{&g_RQ3_team1name, "g_RQ3_team1name", "Robbers", CVAR_SYSTEMINFO | CVAR_SERVERINFO, 0, qfalse},
{&g_RQ3_team2name, "g_RQ3_team2name", "Swat", CVAR_SYSTEMINFO | CVAR_SERVERINFO, 0, qfalse},
{&g_RQ3_team1model, "g_RQ3_team1model", "grunt/robber", CVAR_SERVERINFO, 0, qfalse},
{&g_RQ3_team2model, "g_RQ3_team2model", "grunt/police", CVAR_SERVERINFO, 0, qfalse},
{&g_RQ3_team1model, "g_RQ3_team1model", "grunt/robber", CVAR_SYSTEMINFO, 0, qfalse},
{&g_RQ3_team2model, "g_RQ3_team2model", "grunt/police", CVAR_SYSTEMINFO, 0, qfalse},
{&g_RQ3_tpcountdown, "g_RQ3_tpcountdown", "0", CVAR_ARCHIVE, 0, qfalse},
{&g_RQ3_printOwnObits, "g_RQ3_printOwnObits", "0", CVAR_ARCHIVE, 0, qfalse},
{&g_RQ3_gib, "g_RQ3_gib", "1", CVAR_ARCHIVE, 0, qtrue},