mirror of
https://github.com/ReactionQuake3/reaction.git
synced 2024-11-11 15:52:30 +00:00
match scoreboard changes
This commit is contained in:
parent
976a3e9f67
commit
9d9d2ac0c1
6 changed files with 183 additions and 105 deletions
|
@ -5,6 +5,9 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.43 2002/06/03 00:48:32 niceass
|
||||||
|
// match scoreboard changes
|
||||||
|
//
|
||||||
// Revision 1.42 2002/05/19 18:32:11 jbravo
|
// Revision 1.42 2002/05/19 18:32:11 jbravo
|
||||||
// Made new cvars for regular xhair colors.
|
// Made new cvars for regular xhair colors.
|
||||||
//
|
//
|
||||||
|
@ -1330,7 +1333,7 @@ static void CG_DrawUpperRight( void ) {
|
||||||
if ( cg_drawFPS.integer ) {
|
if ( cg_drawFPS.integer ) {
|
||||||
y = CG_DrawFPS( y );
|
y = CG_DrawFPS( y );
|
||||||
}
|
}
|
||||||
if ( cg_drawTimer.integer || cg_RQ3_matchmode.integer) {
|
if ( cg_drawTimer.integer ) {
|
||||||
y = CG_DrawTimer( y );
|
y = CG_DrawTimer( y );
|
||||||
}
|
}
|
||||||
if ( cg_drawAttacker.integer ) {
|
if ( cg_drawAttacker.integer ) {
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.84 2002/06/03 00:48:10 niceass
|
||||||
|
// match scoreboard changes
|
||||||
|
//
|
||||||
// Revision 1.83 2002/05/28 01:17:01 jbravo
|
// Revision 1.83 2002/05/28 01:17:01 jbravo
|
||||||
// More gib fixes. g_RQ3_gib added
|
// More gib fixes. g_RQ3_gib added
|
||||||
//
|
//
|
||||||
|
@ -492,22 +495,14 @@ typedef struct localEntity_s {
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int client;
|
int client;
|
||||||
int score;
|
int score;
|
||||||
int deaths; // NiceAss: Added deaths
|
int deaths;
|
||||||
int damage; // JBravo: Added damage
|
int damage;
|
||||||
int alive; // JBravo: Added flag to tell if player is alive
|
int alive;
|
||||||
int ping;
|
int ping;
|
||||||
int time;
|
int time;
|
||||||
int scoreFlags;
|
int scoreFlags;
|
||||||
int powerUps;
|
int powerUps;
|
||||||
int accuracy;
|
int accuracy;
|
||||||
//Elder: no more of these
|
|
||||||
int impressiveCount;
|
|
||||||
int excellentCount;
|
|
||||||
int guantletCount;
|
|
||||||
int defendCount;
|
|
||||||
int assistCount;
|
|
||||||
int captures;
|
|
||||||
qboolean perfect;
|
|
||||||
int team;
|
int team;
|
||||||
//Slicer Matchmode
|
//Slicer Matchmode
|
||||||
team_t captain;
|
team_t captain;
|
||||||
|
@ -928,15 +923,21 @@ typedef struct {
|
||||||
|
|
||||||
int records[REC_NUM_RECORDS]; // Blaze: for our statistics tracking
|
int records[REC_NUM_RECORDS]; // Blaze: for our statistics tracking
|
||||||
float loadingMapPercent; // NiceAss: Ranges from 0 to 1. Used on map load.
|
float loadingMapPercent; // NiceAss: Ranges from 0 to 1. Used on map load.
|
||||||
|
|
||||||
|
// NiceAss: Scoreboard MM stuff:
|
||||||
|
int matchTime;
|
||||||
|
int team1ready;
|
||||||
|
int team2ready;
|
||||||
} cg_t;
|
} cg_t;
|
||||||
|
|
||||||
//Blaze: struct to hold the func_breakable stuff
|
//Blaze: struct to hold the func_breakable stuff
|
||||||
typedef struct {
|
typedef struct {
|
||||||
qhandle_t model[3];
|
qhandle_t model[3];
|
||||||
sfxHandle_t sound[3];
|
sfxHandle_t sound[3];
|
||||||
sfxHandle_t exp_sound;
|
sfxHandle_t exp_sound;
|
||||||
qhandle_t shader;
|
qhandle_t shader;
|
||||||
int jump;
|
int jump;
|
||||||
int velocity;
|
int velocity;
|
||||||
} breakable_t;
|
} breakable_t;
|
||||||
|
|
||||||
// all of the model, shader, and sound references that are
|
// all of the model, shader, and sound references that are
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.29 2002/06/03 00:47:18 niceass
|
||||||
|
// match scoreboard changes
|
||||||
|
//
|
||||||
// Revision 1.28 2002/05/27 17:47:19 jbravo
|
// Revision 1.28 2002/05/27 17:47:19 jbravo
|
||||||
// Fixes and cleanups
|
// Fixes and cleanups
|
||||||
//
|
//
|
||||||
|
@ -198,17 +201,17 @@ static void CG_DrawTeamplayClientScore( int y, score_t *score, float *Fill, floa
|
||||||
|
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qfalse, qfalse, FillColor, Boarder);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qfalse, qfalse, FillColor, Boarder);
|
||||||
|
|
||||||
|
|
||||||
//cg_RQ3_matchmode
|
|
||||||
//cg_RQ3_RefID
|
|
||||||
//cg_RQ3_team1ready
|
|
||||||
//cg_RQ3_team2ready
|
|
||||||
//ent->client->pers.sub
|
|
||||||
|
|
||||||
Com_sprintf(Tmp, 128, "%5i %s", score->score, ci->name);
|
Com_sprintf(Tmp, 128, "%5i %s", score->score, ci->name);
|
||||||
DrawLeftStripText(y, SB_FONTSIZEH, Tmp, 27, TextColor);
|
DrawLeftStripText(y, SB_FONTSIZEH, Tmp, 27, TextColor);
|
||||||
Com_sprintf(Tmp, 128, "%4i %4i %6i", score->time, score->ping, score->damage);
|
Com_sprintf(Tmp, 128, "%4i %4i %6i", score->time, score->ping, score->damage);
|
||||||
DrawRightStripText(y, SB_FONTSIZEH, Tmp, 100, TextColor);
|
DrawRightStripText(y, SB_FONTSIZEH, Tmp, 100, TextColor);
|
||||||
|
|
||||||
|
if (score->captain && score->sub == 0)
|
||||||
|
DrawStripText(y, -(SB_FONTSIZEW * 10), SB_FONTSIZEH, "[CAPTAIN]", 100, colorWhite);
|
||||||
|
else if (score->sub && score->captain == 0)
|
||||||
|
DrawStripText(y, -(SB_FONTSIZEW * 6), SB_FONTSIZEH, "[SUB]", 100, colorWhite);
|
||||||
|
else if (score->sub && score->captain)
|
||||||
|
DrawStripText(y, -(SB_FONTSIZEW * 16), SB_FONTSIZEH, "[CAPTAIN] [SUB]", 100, colorWhite);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -220,10 +223,10 @@ CG_TeamScoreboard
|
||||||
static int CG_TeamplayScoreboard(void)
|
static int CG_TeamplayScoreboard(void)
|
||||||
{
|
{
|
||||||
clientInfo_t *ci;
|
clientInfo_t *ci;
|
||||||
int i; // subs;
|
int i;
|
||||||
|
|
||||||
int Reds, Blues, Spectators, Refs;
|
int Reds, Blues, Spectators, Refs;
|
||||||
// int RedSubs, BlueSubs;
|
int RedSubs, BlueSubs;
|
||||||
|
|
||||||
float Alpha;
|
float Alpha;
|
||||||
score_t *Score;
|
score_t *Score;
|
||||||
|
@ -259,22 +262,42 @@ static int CG_TeamplayScoreboard(void)
|
||||||
MAKERGBA(BlueL, 0.0f, 0.0f, 0.8f, 0.4f * Alpha);
|
MAKERGBA(BlueL, 0.0f, 0.0f, 0.8f, 0.4f * Alpha);
|
||||||
MAKERGBA(GreyL, 0.3f, 0.3f, 0.3f, 0.4f * Alpha);
|
MAKERGBA(GreyL, 0.3f, 0.3f, 0.3f, 0.4f * Alpha);
|
||||||
|
|
||||||
Reds = Blues = Spectators = Refs = 0;
|
Reds = Blues = Spectators = Refs = RedSubs = BlueSubs = 0;
|
||||||
|
|
||||||
for ( i = 0 ; i < cg.numScores ; i++ ) {
|
for ( i = 0 ; i < cg.numScores ; i++ ) {
|
||||||
Score = &cg.scores[i];
|
Score = &cg.scores[i];
|
||||||
ci = &cgs.clientinfo[ Score->client ];
|
ci = &cgs.clientinfo[ Score->client ];
|
||||||
|
|
||||||
if (cg_RQ3_matchmode.integer) {
|
if (cg_RQ3_matchmode.integer) {
|
||||||
if (Score->client == cg_RQ3_RefID.integer && ci->team == TEAM_SPECTATOR) continue;
|
if (Score->client == cg_RQ3_RefID.integer && ci->team == TEAM_SPECTATOR) continue;
|
||||||
}
|
}
|
||||||
if (ci->team == TEAM_RED) Reds++;
|
|
||||||
if (ci->team == TEAM_BLUE) Blues++;
|
|
||||||
if (ci->team == TEAM_SPECTATOR) Spectators++;
|
|
||||||
|
|
||||||
|
if (Score->sub == TEAM_RED)
|
||||||
|
RedSubs++;
|
||||||
|
else if (Score->sub == TEAM_BLUE)
|
||||||
|
BlueSubs++;
|
||||||
|
else if (ci->team == TEAM_RED)
|
||||||
|
Reds++;
|
||||||
|
else if (ci->team == TEAM_BLUE)
|
||||||
|
Blues++;
|
||||||
|
|
||||||
|
if (ci->team == TEAM_SPECTATOR) Spectators++;
|
||||||
}
|
}
|
||||||
|
|
||||||
y = 20; // Starting height.
|
y = 20; // Starting height.
|
||||||
|
|
||||||
|
if ( cg_RQ3_matchmode.integer ) {
|
||||||
|
int mins, secs;
|
||||||
|
char Time[16];
|
||||||
|
|
||||||
|
mins = (int)floor(cg.matchTime / 60.0f);
|
||||||
|
secs = cg.matchTime - (mins * 60);
|
||||||
|
Com_sprintf(Time, 16, "%d:%02d", mins, secs);
|
||||||
|
|
||||||
|
DrawRightStripText(y, SB_FONTSIZEH, va("Matchtime: %s", Time), 100, colorWhite);
|
||||||
|
y += SB_FONTSIZEH+SB_PADDING*2+2;
|
||||||
|
}
|
||||||
|
|
||||||
// MATCHMODE / TEAMPLAY for showing Referee
|
// MATCHMODE / TEAMPLAY for showing Referee
|
||||||
if ( cg_RQ3_matchmode.integer && cg_RQ3_RefID.integer >= 0) {
|
if ( cg_RQ3_matchmode.integer && cg_RQ3_RefID.integer >= 0) {
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, GreyL, colorBlack);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, GreyL, colorBlack);
|
||||||
|
@ -284,7 +307,7 @@ static int CG_TeamplayScoreboard(void)
|
||||||
y += SB_FONTSIZEH+SB_PADDING*4+2;
|
y += SB_FONTSIZEH+SB_PADDING*4+2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOT TEAMPLAY:
|
// DEATHMATCH:
|
||||||
if (cg.scoreTPMode == 1 || cgs.gametype < GT_TEAM) {
|
if (cg.scoreTPMode == 1 || cgs.gametype < GT_TEAM) {
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, BlackL, colorWhite);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, BlackL, colorWhite);
|
||||||
DrawLeftStripText(y, SB_FONTSIZEH, "Frags Name", 100, colorWhite);
|
DrawLeftStripText(y, SB_FONTSIZEH, "Frags Name", 100, colorWhite);
|
||||||
|
@ -308,13 +331,14 @@ static int CG_TeamplayScoreboard(void)
|
||||||
// *************** RED TEAM ***************
|
// *************** RED TEAM ***************
|
||||||
//trap_Cvar_VariableStringBuffer("g_RQ3_team1model", Tmp, sizeof(Tmp));
|
//trap_Cvar_VariableStringBuffer("g_RQ3_team1model", Tmp, sizeof(Tmp));
|
||||||
|
|
||||||
|
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, RedD, colorBlack);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, RedD, colorBlack);
|
||||||
trap_Cvar_VariableStringBuffer("g_RQ3_team1name", teamname, sizeof(teamname));
|
trap_Cvar_VariableStringBuffer("g_RQ3_team1name", teamname, sizeof(teamname));
|
||||||
DrawStripText(y, 50, SB_FONTSIZEH, teamname, 100, colorBlack);
|
DrawStripText(y, 50, SB_FONTSIZEH, teamname, 100, colorBlack);
|
||||||
|
|
||||||
if ( cg_RQ3_matchmode.integer )
|
if ( cg_RQ3_matchmode.integer )
|
||||||
DrawRightStripText(y, SB_FONTSIZEH, va("%s - Wins: %d",
|
DrawRightStripText(y, SB_FONTSIZEH, va("%s - Wins: %d",
|
||||||
cg_RQ3_team1ready.integer ? "Ready" : "Not Ready", cg.teamScores[0]), 100, colorWhite);
|
cg.team1ready ? "Ready" : "Not Ready", cg.teamScores[0]), 100, colorWhite);
|
||||||
else
|
else
|
||||||
DrawRightStripText(y, SB_FONTSIZEH, va("Wins: %d", cg.teamScores[0]), 100, colorWhite);
|
DrawRightStripText(y, SB_FONTSIZEH, va("Wins: %d", cg.teamScores[0]), 100, colorWhite);
|
||||||
|
|
||||||
|
@ -323,30 +347,56 @@ static int CG_TeamplayScoreboard(void)
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, GreyL, colorBlack);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, GreyL, colorBlack);
|
||||||
DrawLeftStripText(y, SB_FONTSIZEH, "Frags Name", 100, colorWhite);
|
DrawLeftStripText(y, SB_FONTSIZEH, "Frags Name", 100, colorWhite);
|
||||||
DrawRightStripText(y, SB_FONTSIZEH, "Time Ping Damage", 100, colorWhite);
|
DrawRightStripText(y, SB_FONTSIZEH, "Time Ping Damage", 100, colorWhite);
|
||||||
y += SB_FONTSIZEH+SB_PADDING*2+2;
|
y += SB_FONTSIZEH+SB_PADDING*2;
|
||||||
|
|
||||||
Ping = Frags = Damage = 0;
|
Ping = Frags = Damage = 0;
|
||||||
if (Reds) {
|
if (Reds || RedSubs) {
|
||||||
First = 0;
|
if (Reds) {
|
||||||
|
y += 2;
|
||||||
|
First = 0;
|
||||||
|
for ( i = 0 ; i < cg.numScores; i++ ) {
|
||||||
|
Score = &cg.scores[i];
|
||||||
|
ci = &cgs.clientinfo[ Score->client ];
|
||||||
|
|
||||||
for ( i = 0 ; i < cg.numScores; i++ ) {
|
if (cg_RQ3_matchmode.integer && Score->client == cg_RQ3_RefID.integer) continue;
|
||||||
Score = &cg.scores[i];
|
|
||||||
ci = &cgs.clientinfo[ Score->client ];
|
|
||||||
|
|
||||||
if (cg_RQ3_matchmode.integer && Score->client == cg_RQ3_RefID.integer) continue;
|
if (ci->team == TEAM_RED && Score->sub == 0) {
|
||||||
|
CG_DrawTeamplayClientScore(y, Score, RedL, colorBlack, colorWhite);
|
||||||
if (ci->team == TEAM_RED) {
|
if (First == 0) DrawStrip(y, SB_FONTSIZEH, qfalse, qtrue, qfalse, RedL, colorBlack);
|
||||||
CG_DrawTeamplayClientScore(y, Score, RedL, colorBlack, colorWhite);
|
y += SB_FONTSIZEH+SB_PADDING*2;
|
||||||
if (First == 0) DrawStrip(y, SB_FONTSIZEH, qfalse, qtrue, qfalse, RedL, colorBlack);
|
Ping += Score->ping;
|
||||||
y += SB_FONTSIZEH+SB_PADDING*2;
|
Frags += Score->score;
|
||||||
Ping += Score->ping;
|
Damage += Score->damage;
|
||||||
Frags += Score->score;
|
First = 1;
|
||||||
Damage += Score->damage;
|
|
||||||
First = 1;
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
DrawStrip(y - (SB_FONTSIZEH+SB_PADDING*2), SB_FONTSIZEH, qfalse, qfalse, qtrue, RedL, colorBlack);
|
||||||
|
}
|
||||||
|
|
||||||
|
// SUBS
|
||||||
|
if (RedSubs) {
|
||||||
|
y += 2;
|
||||||
|
First = 0;
|
||||||
|
for ( i = 0 ; i < cg.numScores; i++ ) {
|
||||||
|
Score = &cg.scores[i];
|
||||||
|
ci = &cgs.clientinfo[ Score->client ];
|
||||||
|
|
||||||
|
if (cg_RQ3_matchmode.integer && Score->client == cg_RQ3_RefID.integer) continue;
|
||||||
|
|
||||||
|
if (ci->team == TEAM_RED && Score->sub ) {
|
||||||
|
CG_DrawTeamplayClientScore(y, Score, RedL, colorBlack, colorWhite);
|
||||||
|
if (First == 0) DrawStrip(y, SB_FONTSIZEH, qfalse, qtrue, qfalse, RedL, colorBlack);
|
||||||
|
y += SB_FONTSIZEH+SB_PADDING*2;
|
||||||
|
Ping += Score->ping;
|
||||||
|
Frags += Score->score;
|
||||||
|
Damage += Score->damage;
|
||||||
|
First = 1;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DrawStrip(y - (SB_FONTSIZEH+SB_PADDING*2), SB_FONTSIZEH, qfalse, qfalse, qtrue, RedL, colorBlack);
|
||||||
}
|
}
|
||||||
DrawStrip(y - (SB_FONTSIZEH+SB_PADDING*2), SB_FONTSIZEH, qfalse, qfalse, qtrue, RedL, colorBlack);
|
|
||||||
|
|
||||||
y += 2;
|
y += 2;
|
||||||
Com_sprintf(Tmp, 128, "%5d", Frags);
|
Com_sprintf(Tmp, 128, "%5d", Frags);
|
||||||
|
@ -357,6 +407,7 @@ static int CG_TeamplayScoreboard(void)
|
||||||
DrawCenterStripText(y, SB_FONTSIZEH, "Averages", 20, colorWhite);
|
DrawCenterStripText(y, SB_FONTSIZEH, "Averages", 20, colorWhite);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
y += 2;
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, RedL, colorBlack);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, RedL, colorBlack);
|
||||||
DrawCenterStripText(y, SB_FONTSIZEH, "No team members", 100, colorWhite);
|
DrawCenterStripText(y, SB_FONTSIZEH, "No team members", 100, colorWhite);
|
||||||
}
|
}
|
||||||
|
@ -369,7 +420,7 @@ static int CG_TeamplayScoreboard(void)
|
||||||
|
|
||||||
if ( cg_RQ3_matchmode.integer )
|
if ( cg_RQ3_matchmode.integer )
|
||||||
DrawRightStripText(y, SB_FONTSIZEH, va("%s - Wins: %d",
|
DrawRightStripText(y, SB_FONTSIZEH, va("%s - Wins: %d",
|
||||||
cg_RQ3_team2ready.integer ? "Ready" : "Not Ready", cg.teamScores[1]), 100, colorWhite);
|
cg.team2ready ? "Ready" : "Not Ready", cg.teamScores[1]), 100, colorWhite);
|
||||||
else
|
else
|
||||||
DrawRightStripText(y, SB_FONTSIZEH, va("Wins: %d", cg.teamScores[1]), 100, colorWhite);
|
DrawRightStripText(y, SB_FONTSIZEH, va("Wins: %d", cg.teamScores[1]), 100, colorWhite);
|
||||||
|
|
||||||
|
@ -378,30 +429,54 @@ static int CG_TeamplayScoreboard(void)
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, GreyL, colorBlack);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, GreyL, colorBlack);
|
||||||
DrawLeftStripText(y, SB_FONTSIZEH, "Frags Name", 100, colorWhite);
|
DrawLeftStripText(y, SB_FONTSIZEH, "Frags Name", 100, colorWhite);
|
||||||
DrawRightStripText(y, SB_FONTSIZEH, "Time Ping Damage", 100, colorWhite);
|
DrawRightStripText(y, SB_FONTSIZEH, "Time Ping Damage", 100, colorWhite);
|
||||||
y += SB_FONTSIZEH+SB_PADDING*2+2;
|
y += SB_FONTSIZEH+SB_PADDING*2;
|
||||||
|
|
||||||
Ping = Frags = Damage = 0;
|
Ping = Frags = Damage = 0;
|
||||||
if (Blues) {
|
if (Blues || BlueSubs) {
|
||||||
First = 0;
|
if (Blues) {
|
||||||
|
y+=2;
|
||||||
|
First = 0;
|
||||||
|
for ( i = 0 ; i < cg.numScores; i++ ) {
|
||||||
|
Score = &cg.scores[i];
|
||||||
|
ci = &cgs.clientinfo[ Score->client ];
|
||||||
|
|
||||||
for ( i = 0 ; i < cg.numScores; i++ ) {
|
if (cg_RQ3_matchmode.integer && Score->client == cg_RQ3_RefID.integer) continue;
|
||||||
Score = &cg.scores[i];
|
|
||||||
ci = &cgs.clientinfo[ Score->client ];
|
|
||||||
|
|
||||||
if (cg_RQ3_matchmode.integer && Score->client == cg_RQ3_RefID.integer) continue;
|
if (ci->team == TEAM_BLUE && Score->sub == 0) {
|
||||||
|
CG_DrawTeamplayClientScore(y, Score, BlueL, colorBlack, colorWhite);
|
||||||
if (ci->team == TEAM_BLUE) {
|
if (First == 0) DrawStrip(y, SB_FONTSIZEH, qfalse, qtrue, qfalse, BlueL, colorBlack);
|
||||||
CG_DrawTeamplayClientScore(y, Score, BlueL, colorBlack, colorWhite);
|
y += SB_FONTSIZEH+SB_PADDING*2;
|
||||||
if (First == 0) DrawStrip(y, SB_FONTSIZEH, qfalse, qtrue, qfalse, BlueL, colorBlack);
|
Ping += Score->ping;
|
||||||
y += SB_FONTSIZEH+SB_PADDING*2;
|
Frags += Score->score;
|
||||||
Ping += Score->ping;
|
Damage += Score->damage;
|
||||||
Frags += Score->score;
|
First = 1;
|
||||||
Damage += Score->damage;
|
}
|
||||||
First = 1;
|
|
||||||
}
|
}
|
||||||
|
DrawStrip(y - (SB_FONTSIZEH+SB_PADDING*2), SB_FONTSIZEH, qfalse, qfalse, qtrue, BlueL, colorBlack);
|
||||||
}
|
}
|
||||||
DrawStrip(y - (SB_FONTSIZEH+SB_PADDING*2), SB_FONTSIZEH, qfalse, qfalse, qtrue, BlueL, colorBlack);
|
|
||||||
|
|
||||||
|
// SUBS:
|
||||||
|
if (BlueSubs) {
|
||||||
|
y += 2;
|
||||||
|
First = 0;
|
||||||
|
for ( i = 0 ; i < cg.numScores; i++ ) {
|
||||||
|
Score = &cg.scores[i];
|
||||||
|
ci = &cgs.clientinfo[ Score->client ];
|
||||||
|
|
||||||
|
if (cg_RQ3_matchmode.integer && Score->client == cg_RQ3_RefID.integer) continue;
|
||||||
|
|
||||||
|
if (ci->team == TEAM_BLUE && Score->sub ) {
|
||||||
|
CG_DrawTeamplayClientScore(y, Score, BlueL, colorBlack, colorWhite);
|
||||||
|
if (First == 0) DrawStrip(y, SB_FONTSIZEH, qfalse, qtrue, qfalse, BlueL, colorBlack);
|
||||||
|
y += SB_FONTSIZEH+SB_PADDING*2;
|
||||||
|
Ping += Score->ping;
|
||||||
|
Frags += Score->score;
|
||||||
|
Damage += Score->damage;
|
||||||
|
First = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DrawStrip(y - (SB_FONTSIZEH+SB_PADDING*2), SB_FONTSIZEH, qfalse, qfalse, qtrue, BlueL, colorBlack);
|
||||||
|
}
|
||||||
y += 2;
|
y += 2;
|
||||||
|
|
||||||
Com_sprintf(Tmp, 128, "%5d", Frags);
|
Com_sprintf(Tmp, 128, "%5d", Frags);
|
||||||
|
@ -412,6 +487,7 @@ static int CG_TeamplayScoreboard(void)
|
||||||
DrawCenterStripText(y, SB_FONTSIZEH, "Averages", 20, colorWhite);
|
DrawCenterStripText(y, SB_FONTSIZEH, "Averages", 20, colorWhite);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
y+=2;
|
||||||
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, BlueL, colorBlack);
|
DrawStrip(y, SB_FONTSIZEH, qtrue, qtrue, qtrue, BlueL, colorBlack);
|
||||||
DrawCenterStripText(y, SB_FONTSIZEH, "No team members", 100, colorWhite);
|
DrawCenterStripText(y, SB_FONTSIZEH, "No team members", 100, colorWhite);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.45 2002/06/03 00:47:06 niceass
|
||||||
|
// match scoreboard changes
|
||||||
|
//
|
||||||
// Revision 1.44 2002/06/02 22:23:57 makro
|
// Revision 1.44 2002/06/02 22:23:57 makro
|
||||||
// no message
|
// no message
|
||||||
//
|
//
|
||||||
|
@ -168,36 +171,25 @@ static void CG_ParseScores( void ) {
|
||||||
|
|
||||||
cg.teamScores[0] = atoi( CG_Argv( 2 ) );
|
cg.teamScores[0] = atoi( CG_Argv( 2 ) );
|
||||||
cg.teamScores[1] = atoi( CG_Argv( 3 ) );
|
cg.teamScores[1] = atoi( CG_Argv( 3 ) );
|
||||||
|
cg.team1ready = atoi( CG_Argv( 4 ) );
|
||||||
|
cg.team2ready = atoi( CG_Argv( 5 ) );
|
||||||
|
cg.matchTime = atoi( CG_Argv( 6 ) );
|
||||||
|
|
||||||
memset( cg.scores, 0, sizeof( cg.scores ) );
|
memset( cg.scores, 0, sizeof( cg.scores ) );
|
||||||
for ( i = 0 ; i < cg.numScores ; i++ ) {
|
for ( i = 0 ; i < cg.numScores ; i++ ) {
|
||||||
//Elder: Leave as-is ... sent zeros by server
|
//Elder: Leave as-is ... sent zeros by server
|
||||||
//CG_Printf("client: %d\n", cg.scores[i].client);
|
cg.scores[i].client = atoi( CG_Argv( i * 12 + 7 ) );
|
||||||
cg.scores[i].client = atoi( CG_Argv( i * 14 + 4 ) );
|
cg.scores[i].score = atoi( CG_Argv( i * 12 + 8 ) );
|
||||||
cg.scores[i].score = atoi( CG_Argv( i * 14 + 5 ) );
|
cg.scores[i].ping = atoi( CG_Argv( i * 12 + 9 ) );
|
||||||
cg.scores[i].ping = atoi( CG_Argv( i * 14 + 6 ) );
|
cg.scores[i].time = atoi( CG_Argv( i * 12 + 10) );
|
||||||
cg.scores[i].time = atoi( CG_Argv( i * 14 + 7 ) );
|
cg.scores[i].scoreFlags = atoi( CG_Argv( i * 12 + 11) );
|
||||||
cg.scores[i].scoreFlags = atoi( CG_Argv( i * 14 + 8 ) );
|
powerups = atoi( CG_Argv( i * 12 + 12) );
|
||||||
powerups = atoi( CG_Argv( i * 14 + 9 ) );
|
cg.scores[i].accuracy = atoi(CG_Argv(i * 12 + 13));
|
||||||
cg.scores[i].accuracy = atoi(CG_Argv(i * 14 + 10));
|
cg.scores[i].deaths = atoi(CG_Argv(i * 12 + 14));
|
||||||
// Added deaths, replaced the place of impressiveCount
|
cg.scores[i].damage = atoi(CG_Argv(i * 12 + 15));
|
||||||
cg.scores[i].deaths = atoi(CG_Argv(i * 14 + 11));
|
cg.scores[i].alive = atoi(CG_Argv(i * 12 + 16));
|
||||||
// JBravo: Added damage, replaced the place of excellentCount
|
cg.scores[i].captain = atoi(CG_Argv(i * 12 + 17));
|
||||||
cg.scores[i].damage = atoi(CG_Argv(i * 14 + 12));
|
cg.scores[i].sub = atoi(CG_Argv(i * 12 + 18));
|
||||||
// JBravo: Added health, replaced the place of guantletCount
|
|
||||||
cg.scores[i].alive = atoi(CG_Argv(i * 14 + 13));
|
|
||||||
//Elder: these should be zero
|
|
||||||
//cg.scores[i].impressiveCount = atoi(CG_Argv(i * 14 + 11));
|
|
||||||
//cg.scores[i].excellentCount = atoi(CG_Argv(i * 14 + 12));
|
|
||||||
//cg.scores[i].guantletCount = atoi(CG_Argv(i * 14 + 13));
|
|
||||||
//Slicer using first two for Matchmode
|
|
||||||
//cg.scores[i].defendCount = atoi(CG_Argv(i * 14 + 14));
|
|
||||||
//cg.scores[i].assistCount = atoi(CG_Argv(i * 14 + 15));
|
|
||||||
cg.scores[i].captain = atoi(CG_Argv(i * 14 + 14));
|
|
||||||
cg.scores[i].sub = atoi(CG_Argv(i * 14 + 15));
|
|
||||||
|
|
||||||
cg.scores[i].perfect = atoi(CG_Argv(i * 14 + 16));
|
|
||||||
cg.scores[i].captures = atoi(CG_Argv(i * 14 + 17));
|
|
||||||
|
|
||||||
if ( cg.scores[i].client < 0 || cg.scores[i].client >= MAX_CLIENTS ) {
|
if ( cg.scores[i].client < 0 || cg.scores[i].client >= MAX_CLIENTS ) {
|
||||||
cg.scores[i].client = 0;
|
cg.scores[i].client = 0;
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.116 2002/06/03 00:46:08 niceass
|
||||||
|
// match scoreboard changes
|
||||||
|
//
|
||||||
// Revision 1.115 2002/06/02 00:13:39 makro
|
// Revision 1.115 2002/06/02 00:13:39 makro
|
||||||
// Spectators can vote in TP, not just call a vote
|
// Spectators can vote in TP, not just call a vote
|
||||||
//
|
//
|
||||||
|
@ -298,16 +301,15 @@ void DeathmatchScoreboardMessage (gentity_t *ent) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Com_sprintf (entry, sizeof(entry),
|
Com_sprintf (entry, sizeof(entry),
|
||||||
" %i %i %i %i %i %i %i %i %i %i %i %i %i %i", level.sortedClients[i],
|
" %i %i %i %i %i %i %i %i %i %i %i %i", level.sortedClients[i],
|
||||||
cl->ps.persistant[PERS_SCORE], ping, (level.time - cl->pers.enterTime)/60000,
|
cl->ps.persistant[PERS_SCORE], ping, (level.time - cl->pers.enterTime)/60000,
|
||||||
scoreFlags, g_entities[level.sortedClients[i]].s.powerups, accuracy,
|
scoreFlags, g_entities[level.sortedClients[i]].s.powerups, accuracy,
|
||||||
cl->ps.persistant[PERS_KILLED], // NiceAss: Added for scoreboard
|
cl->ps.persistant[PERS_KILLED], // NiceAss: Added for scoreboard
|
||||||
cl->ps.persistant[PERS_DAMAGE_DELT], // JBravo: Added for scoreboard
|
cl->ps.persistant[PERS_DAMAGE_DELT], // JBravo: Added for scoreboard
|
||||||
cl->sess.sessionTeam != TEAM_SPECTATOR, // JBravo: Added for TP scoreboard
|
cl->sess.sessionTeam != TEAM_SPECTATOR, // JBravo: Added for TP scoreboard
|
||||||
cl->sess.captain, //Slicer: Added for Matchmode Scoreboard
|
cl->sess.captain, // Slicer: Added for Matchmode Scoreboard
|
||||||
cl->sess.sub, //Slicer: Added for Matchmode Scoreboard
|
cl->sess.sub // Slicer: Added for Matchmode Scoreboard
|
||||||
0,
|
);
|
||||||
0);
|
|
||||||
|
|
||||||
j = strlen(entry);
|
j = strlen(entry);
|
||||||
if (stringlength + j > 1024)
|
if (stringlength + j > 1024)
|
||||||
|
@ -316,9 +318,10 @@ void DeathmatchScoreboardMessage (gentity_t *ent) {
|
||||||
stringlength += j;
|
stringlength += j;
|
||||||
}
|
}
|
||||||
|
|
||||||
trap_SendServerCommand(ent-g_entities, va("scores %i %i %i%s", i,
|
trap_SendServerCommand(ent-g_entities, va("scores %i %i %i %i %i %i%s", i,
|
||||||
level.teamScores[TEAM_RED], level.teamScores[TEAM_BLUE],
|
level.teamScores[TEAM_RED], level.teamScores[TEAM_BLUE],
|
||||||
string));
|
g_RQ3_team1ready.integer, g_RQ3_team2ready.integer,
|
||||||
|
(int)level.matchTime, string));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// $Log$
|
// $Log$
|
||||||
|
// Revision 1.62 2002/06/03 00:49:07 niceass
|
||||||
|
// match scoreboard changes
|
||||||
|
//
|
||||||
// Revision 1.61 2002/05/31 05:12:50 niceass
|
// Revision 1.61 2002/05/31 05:12:50 niceass
|
||||||
// tpcountdown default 0!1@$@#%$
|
// tpcountdown default 0!1@$@#%$
|
||||||
//
|
//
|
||||||
|
@ -379,7 +382,7 @@ static cvarTable_t gameCvarTable[] = {
|
||||||
|
|
||||||
{ &g_rankings, "g_rankings", "0", 0, 0, qfalse},
|
{ &g_rankings, "g_rankings", "0", 0, 0, qfalse},
|
||||||
//Slicer: Matchmode
|
//Slicer: Matchmode
|
||||||
{ &g_RQ3_matchmode, "g_RQ3_matchmode", "0", CVAR_SERVERINFO | CVAR_USERINFO | CVAR_LATCH, 0, qfalse },
|
{ &g_RQ3_matchmode, "g_RQ3_matchmode", "0", CVAR_SERVERINFO | CVAR_USERINFO | CVAR_LATCH | CVAR_SYSTEMINFO, 0, qfalse },
|
||||||
//Slicer: radio protect
|
//Slicer: radio protect
|
||||||
{ &g_RQ3_radioFlood, "g_RQ3_radioFlood", "3", 0 , 0, qfalse },
|
{ &g_RQ3_radioFlood, "g_RQ3_radioFlood", "3", 0 , 0, qfalse },
|
||||||
{ &g_RQ3_radioFloodTime, "g_RQ3_radioFloodTime", "2", 0 , 0, qfalse },
|
{ &g_RQ3_radioFloodTime, "g_RQ3_radioFloodTime", "2", 0 , 0, qfalse },
|
||||||
|
|
Loading…
Reference in a new issue