+#include "scores.qh"
+#include "_all.qh"
+
+#include "command/common.qh"
+#include "mutators/mutators_include.qh"
+#include "../common/playerstats.qh"
+#include "../common/teams.qh"
+
.entity scorekeeper;
entity teamscorekeepers[16];
string scores_label[MAX_SCORE];
{
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)
+ 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)
+ if (t1.(field) == 0)
{
- previous_x = -1;
+ previous.x = -1;
return previous;
}
- else if(t2.field == 0)
+ 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);
+ if (fieldflags & SFL_LOWER_IS_BETTER)
+ previous.x = (t2.(field) - t1.(field));
else
- previous_x = (t1.field - t2.field);
+ previous.x = (t1.(field) - t2.(field));
return previous;
}
WriteChar(MSG_ENTITY, self.(teamscores[i]));
}
- return TRUE;
+ return true;
}
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_GameReport_AddTeam(t);
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;
}
/*
}
}
-float ScoreInfo_SendEntity(entity to, float sf)
+float ScoreInfo_SendEntity(entity to, int sf)
{
float i;
WriteByte(MSG_ENTITY, ENT_CLIENT_SCORES_INFO);
WriteString(MSG_ENTITY, teamscores_label[i]);
WriteByte(MSG_ENTITY, teamscores_flags[i]);
}
- return TRUE;
+ return true;
}
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");
WriteChar(MSG_ENTITY, self.(scores[i]));
}
- return TRUE;
+ return true;
}
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)
{
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;
}
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()
plist = world;
FOR_EACH_CLIENT(p)
- p.field = 0;
+ p.(field) = 0;
FOR_EACH_CLIENT(p) if(p.scorekeeper)
{
if(!plast || PlayerTeamScore_Compare(plast, pbest, teams, 0))
j = i;
- pbest.field = j;
+ pbest.(field) = j;
if (!pfirst)
pfirst = pbest;
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)
{
sk = p.scorekeeper;
s = strcat(s, p.netname);
- for(;;)
+ for (;;)
{
i = strlennocol(s) - NAMEWIDTH;
if(i > 0)