X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fscores.qc;h=0b5d0ee8c7b4d14429b8bffae9526dc2f9dfef25;hb=99facb38338832f539cec7022c414f7a6de458c3;hp=6a9f866ed4b517c0cb8fda708204b467e48ef98b;hpb=d719b4d3b3edb3a675c121c5942ede0d92cd1ceb;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/scores.qc b/qcsrc/server/scores.qc index 6a9f866ed..0b5d0ee8c 100644 --- a/qcsrc/server/scores.qc +++ b/qcsrc/server/scores.qc @@ -1,3 +1,5 @@ +#include "scores.qh" + .entity scorekeeper; entity teamscorekeepers[16]; string scores_label[MAX_SCORE]; @@ -14,31 +16,31 @@ vector ScoreField_Compare(entity t1, entity t2, .float field, float fieldflags, { if(!strict && !(fieldflags & SFL_SORT_PRIO_MASK)) // column does not sort return previous; - if(fieldflags & SFL_SORT_PRIO_MASK < previous_y) + if((fieldflags & SFL_SORT_PRIO_MASK) < previous.y) return previous; if(t1.field == t2.field) return previous; - previous_y = fieldflags & SFL_SORT_PRIO_MASK; + previous.y = fieldflags & SFL_SORT_PRIO_MASK; if(fieldflags & SFL_ZERO_IS_WORST) { if(t1.field == 0) { - previous_x = -1; + previous.x = -1; return previous; } else if(t2.field == 0) { - previous_x = +1; + previous.x = +1; return previous; } } if(fieldflags & SFL_LOWER_IS_BETTER) - previous_x = (t2.field - t1.field); + previous.x = (t2.field - t1.field); else - previous_x = (t1.field - t2.field); + previous.x = (t1.field - t2.field); return previous; } @@ -75,7 +77,7 @@ float TeamScore_SendEntity(entity to, float sendflags) WriteChar(MSG_ENTITY, self.(teamscores[i])); } - return TRUE; + return true; } void TeamScore_Spawn(float t, string name) @@ -85,10 +87,10 @@ void TeamScore_Spawn(float t, string name) ts.classname = "csqc_score_team"; ts.netname = name; // not used yet, FIXME ts.team = t; - Net_LinkEntity(ts, FALSE, 0, TeamScore_SendEntity); + Net_LinkEntity(ts, false, 0, TeamScore_SendEntity); teamscorekeepers[t - 1] = ts; ++teamscores_entities_count; - PlayerStats_AddTeam(t); + PlayerStats_GameReport_AddTeam(t); } float TeamScore_AddToTeam(float t, float scorefield, float score) @@ -136,10 +138,10 @@ float TeamScore_Compare(entity t1, entity t2, float strict) result = ScoreField_Compare(t1, t2, f, teamscores_flags[i], result, strict); } - if (result_x == 0 && strict) - result_x = t1.team - t2.team; + if (result.x == 0 && strict) + result.x = t1.team - t2.team; - return result_x; + return result.x; } /* @@ -150,15 +152,15 @@ void ScoreInfo_SetLabel_PlayerScore(float i, string label, float scoreflags) { scores_label[i] = label; scores_flags[i] = scoreflags; - if(scoreflags & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_PRIMARY) + if((scoreflags & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_PRIMARY) { scores_primary = scores[i]; scores_flags_primary = scoreflags; } if(label != "") { - PlayerStats_AddEvent(strcat(PLAYERSTATS_TOTAL, label)); - PlayerStats_AddEvent(strcat(PLAYERSTATS_SCOREBOARD, label)); + PlayerStats_GameReport_AddEvent(strcat(PLAYERSTATS_TOTAL, label)); + PlayerStats_GameReport_AddEvent(strcat(PLAYERSTATS_SCOREBOARD, label)); } } @@ -166,15 +168,15 @@ void ScoreInfo_SetLabel_TeamScore(float i, string label, float scoreflags) { teamscores_label[i] = label; teamscores_flags[i] = scoreflags; - if(scoreflags & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_PRIMARY) + if((scoreflags & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_PRIMARY) { teamscores_primary = teamscores[i]; teamscores_flags_primary = scoreflags; } if(label != "") { - PlayerStats_AddEvent(strcat(PLAYERSTATS_TOTAL, label)); - PlayerStats_AddEvent(strcat(PLAYERSTATS_SCOREBOARD, label)); + PlayerStats_GameReport_AddEvent(strcat(PLAYERSTATS_TOTAL, label)); + PlayerStats_GameReport_AddEvent(strcat(PLAYERSTATS_SCOREBOARD, label)); } } @@ -193,7 +195,7 @@ float ScoreInfo_SendEntity(entity to, float sf) WriteString(MSG_ENTITY, teamscores_label[i]); WriteByte(MSG_ENTITY, teamscores_flags[i]); } - return TRUE; + return true; } void ScoreInfo_Init(float teams) @@ -206,7 +208,7 @@ void ScoreInfo_Init(float teams) { scores_initialized = spawn(); scores_initialized.classname = "ent_client_scoreinfo"; - Net_LinkEntity(scores_initialized, FALSE, 0, ScoreInfo_SendEntity); + Net_LinkEntity(scores_initialized, false, 0, ScoreInfo_SendEntity); } if(teams >= 1) TeamScore_Spawn(NUM_TEAM_1, "Red"); @@ -250,7 +252,7 @@ float PlayerScore_SendEntity(entity to, float sendflags) WriteChar(MSG_ENTITY, self.(scores[i])); } - return TRUE; + return true; } float PlayerScore_Clear(entity player) @@ -263,9 +265,6 @@ float PlayerScore_Clear(entity player) if(MUTATOR_CALLHOOK(ForbidPlayerScore_Clear)) return 0; - if(g_cts) return 0; // in CTS, you don't lose score by observing - if(g_race && g_race_qualifying) return 0; // in qualifying, you don't lose score by observing - sk = player.scorekeeper; for(i = 0; i < MAX_SCORE; ++i) { @@ -317,7 +316,7 @@ void PlayerScore_Attach(entity player) error("player already has a scorekeeper"); sk = spawn(); sk.owner = player; - Net_LinkEntity(sk, FALSE, 0, PlayerScore_SendEntity); + Net_LinkEntity(sk, false, 0, PlayerScore_SendEntity); player.scorekeeper = sk; } @@ -334,7 +333,7 @@ float PlayerScore_Add(entity player, float scorefield, float score) entity s; if(gameover) - if not(g_lms && scorefield == SP_LMS_RANK) // allow writing to this field in intermission as it is needed for newly joining players + if(!(g_lms && scorefield == SP_LMS_RANK)) // allow writing to this field in intermission as it is needed for newly joining players score = 0; if(!scores_initialized) return 0; // FIXME remove this when everything uses this system @@ -350,7 +349,7 @@ float PlayerScore_Add(entity player, float scorefield, float score) if(scores_label[scorefield] != "") s.SendFlags |= pow(2, scorefield); if(!warmup_stage) - PlayerStats_Event(s.owner, strcat(PLAYERSTATS_TOTAL, scores_label[scorefield]), score); + PS_GR_P_ADDVAL(s.owner, strcat(PLAYERSTATS_TOTAL, scores_label[scorefield]), score); return (s.(scores[scorefield]) += score); } @@ -376,10 +375,10 @@ float PlayerScore_Compare(entity t1, entity t2, float strict) result = ScoreField_Compare(t1, t2, f, scores_flags[i], result, strict); } - if (result_x == 0 && strict) - result_x = num_for_edict(t1.owner) - num_for_edict(t2.owner); + if (result.x == 0 && strict) + result.x = num_for_edict(t1.owner) - num_for_edict(t2.owner); - return result_x; + return result.x; } void WinningConditionHelper() @@ -532,12 +531,12 @@ void WinningConditionHelper() s = strcat(s, ":human"); else s = strcat(s, ":bot"); - if(!IS_PLAYER(p) && !g_arena && p.caplayer != 1 && !g_lms) + if(!IS_PLAYER(p) && p.caplayer != 1 && !g_lms) s = strcat(s, ":spectator"); } else { - if(IS_PLAYER(p) || g_arena || p.caplayer == 1 || g_lms) + if(IS_PLAYER(p) || p.caplayer == 1 || g_lms) s = GetPlayerScoreString(p, 2); else s = "-666"; @@ -553,9 +552,9 @@ string GetScoreLogLabel(string label, float fl) { if(fl & SFL_LOWER_IS_BETTER) label = strcat(label, "<"); - if(fl & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_PRIMARY) + if((fl & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_PRIMARY) label = strcat(label, "!!"); - else if(fl & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_SECONDARY) + else if((fl & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_SECONDARY) label = strcat(label, "!"); return label; } @@ -572,7 +571,7 @@ string GetPlayerScoreString(entity pl, float shortString) { // label for(i = 0; i < MAX_SCORE; ++i) - if(scores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_PRIMARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_PRIMARY) { f = scores_flags[i]; l = scores_label[i]; @@ -580,7 +579,7 @@ string GetPlayerScoreString(entity pl, float shortString) } if(shortString < 2) for(i = 0; i < MAX_SCORE; ++i) - if(scores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_SECONDARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_SECONDARY) { f = scores_flags[i]; l = scores_label[i]; @@ -588,8 +587,8 @@ string GetPlayerScoreString(entity pl, float shortString) } if(shortString < 1) for(i = 0; i < MAX_SCORE; ++i) - if(scores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_PRIMARY) - if(scores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_SECONDARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_PRIMARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_SECONDARY) { f = scores_flags[i]; l = scores_label[i]; @@ -600,16 +599,16 @@ string GetPlayerScoreString(entity pl, float shortString) else if((sk = pl.scorekeeper)) { for(i = 0; i < MAX_SCORE; ++i) - if(scores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_PRIMARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_PRIMARY) out = strcat(out, ftos(sk.(scores[i])), ","); if(shortString < 2) for(i = 0; i < MAX_SCORE; ++i) - if(scores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_SECONDARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_SECONDARY) out = strcat(out, ftos(sk.(scores[i])), ","); if(shortString < 1) for(i = 0; i < MAX_SCORE; ++i) - if(scores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_PRIMARY) - if(scores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_SECONDARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_PRIMARY) + if((scores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_SECONDARY) out = strcat(out, ftos(sk.(scores[i])), ","); out = substring(out, 0, strlen(out) - 1); } @@ -628,7 +627,7 @@ string GetTeamScoreString(float tm, float shortString) { // label for(i = 0; i < MAX_TEAMSCORE; ++i) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_PRIMARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_PRIMARY) { f = teamscores_flags[i]; l = teamscores_label[i]; @@ -636,7 +635,7 @@ string GetTeamScoreString(float tm, float shortString) } if(shortString < 2) for(i = 0; i < MAX_TEAMSCORE; ++i) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_SECONDARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_SECONDARY) { f = teamscores_flags[i]; l = teamscores_label[i]; @@ -644,8 +643,8 @@ string GetTeamScoreString(float tm, float shortString) } if(shortString < 1) for(i = 0; i < MAX_TEAMSCORE; ++i) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_PRIMARY) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_SECONDARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_PRIMARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_SECONDARY) { f = teamscores_flags[i]; l = teamscores_label[i]; @@ -656,16 +655,16 @@ string GetTeamScoreString(float tm, float shortString) else if((sk = teamscorekeepers[tm - 1])) { for(i = 0; i < MAX_TEAMSCORE; ++i) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_PRIMARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_PRIMARY) out = strcat(out, ftos(sk.(teamscores[i])), ","); if(shortString < 2) for(i = 0; i < MAX_TEAMSCORE; ++i) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK == SFL_SORT_PRIO_SECONDARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) == SFL_SORT_PRIO_SECONDARY) out = strcat(out, ftos(sk.(teamscores[i])), ","); if(shortString < 1) for(i = 0; i < MAX_TEAMSCORE; ++i) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_PRIMARY) - if(teamscores_flags[i] & SFL_SORT_PRIO_MASK != SFL_SORT_PRIO_SECONDARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_PRIMARY) + if((teamscores_flags[i] & SFL_SORT_PRIO_MASK) != SFL_SORT_PRIO_SECONDARY) out = strcat(out, ftos(sk.(teamscores[i])), ","); out = substring(out, 0, strlen(out) - 1); } @@ -688,7 +687,7 @@ float PlayerTeamScore_Compare(entity p1, entity p2, float teams, float strict) if(teams < 0) return 0; } - + return PlayerScore_Compare(p1.scorekeeper, p2.scorekeeper, strict); } @@ -712,7 +711,7 @@ entity PlayerScore_Sort(.float field, float teams, float strict, float nospectat plist = p; } // Now plist points to the whole list. - + pfirst = plast = world; i = j = 0; @@ -742,7 +741,7 @@ entity PlayerScore_Sort(.float field, float teams, float strict, float nospectat pbest.field = j; - if not(pfirst) + if (!pfirst) pfirst = pbest; if(plast) plast.chain = pbest; @@ -765,7 +764,7 @@ float TeamScore_GetCompareValue(float t) } sk = teamscorekeepers[t - 1]; - if not(sk) + if (!sk) return -999999999; s = sk.teamscores_primary; if(teamscores_flags_primary & SFL_ZERO_IS_WORST) @@ -776,8 +775,8 @@ float TeamScore_GetCompareValue(float t) return s; } -#define NAMEWIDTH 22 -#define SCORESWIDTH 58 +const float NAMEWIDTH = 22; +const float SCORESWIDTH = 58; // TODO put this somewhere in common? string Score_NicePrint_ItemColor(float vflags) { @@ -813,7 +812,7 @@ void Score_NicePrint_Team(entity to, float t, float w) s = "Scores:"; s = strcat(s, strpad(max(0, NAMEWIDTH - strlennocol(s)), "")); - + for(i = 0; i < MAX_SCORE; ++i) if(scores_label[i] != "") { @@ -836,7 +835,7 @@ void Score_NicePrint_Player(entity to, entity p, float w) sk = p.scorekeeper; s = strcat(s, p.netname); - for(;;) + for(0;;) { i = strlennocol(s) - NAMEWIDTH; if(i > 0) @@ -847,7 +846,7 @@ void Score_NicePrint_Player(entity to, entity p, float w) break; } } - + for(i = 0; i < MAX_SCORE; ++i) if(scores_label[i] != "") { @@ -896,12 +895,12 @@ void Score_NicePrint(entity to) t = p.team; p = p.chain; } - + t = 0; FOR_EACH_CLIENT(p) - if not(IS_PLAYER(p)) + if (!IS_PLAYER(p)) { - if not(t) + if (!t) Score_NicePrint_Spectators(to); Score_NicePrint_Spectator(to, p); t = 1; @@ -917,7 +916,7 @@ void PlayerScore_PlayerStats(entity p) for(i = 0; i < MAX_SCORE; ++i) if(s.(scores[i]) != 0) if(scores_label[i] != "") - PlayerStats_Event(s.owner, strcat(PLAYERSTATS_SCOREBOARD, scores_label[i]), s.(scores[i])); + PS_GR_P_ADDVAL(s.owner, strcat(PLAYERSTATS_SCOREBOARD, scores_label[i]), s.(scores[i])); } void PlayerScore_TeamStats(void) @@ -933,6 +932,6 @@ void PlayerScore_TeamStats(void) if(sk.(teamscores[i]) != 0) if(teamscores_label[i] != "") // the +1 is important here! - PlayerStats_TeamScore(t+1, strcat(PLAYERSTATS_SCOREBOARD, teamscores_label[i]), sk.(teamscores[i])); + PS_GR_T_ADDVAL(t+1, strcat(PLAYERSTATS_SCOREBOARD, teamscores_label[i]), sk.(teamscores[i])); } }