2 * Attaches a PlayerScore entity to a player. Use that in ClientConnect.
3 * Remember to detach it in ClientDisconnect!
5 void PlayerScore_Attach(entity player);
8 * Detaches a PlayerScore entity from the player. Use that in ClientDisconnect.
10 void PlayerScore_Detach(entity player);
13 * Adds a score to the player's scores.
14 * NEVER call this if PlayerScore_Attach has not been called yet!
15 * Means: FIXME make players unable to join the game when not called ClientConnect yet.
17 void PlayerScore_Add(entity player, float scorefield, float score);
20 * Check if the player can have scores.
21 * This is needed for example in keyhunt, when the carrier disconnects.
22 * The key-losing happens too late... which should probably be fixed
23 * but I'm just not in the mood to do that now as I'm busy making the
26 float PlayerScore_IsValid(entity player);
29 * Initialize the score of this player if needed.
30 * Does nothing in teamplay.
31 * Use that when a spectator becomes a player.
33 void PlayerScore_Clear(entity player);
36 * Adds a score to the player's team's scores.
37 * NEVER call this if team has not been set yet!
39 void TeamScore_Add(entity player, float scorefield, float score);
42 * Adds a score to both the player and the team.
44 void PlayerTeamScore_Add(entity player, float pscorefield, float tscorefield, float score);
47 * Adds to the generic score fields for both the player and the team.
49 #define PlayerTeamScore_AddScore(p,s) PlayerTeamScore_Add(p, SP_SCORE, ST_SCORE, s)
52 * Initialize the scores info for the given number of teams.
53 * Immediately set all labels afterwards.
55 void ScoreInfo_Init(float teams);
58 * Set the label of a team score item, as well as the scoring flags.
60 void ScoreInfo_SetLabel_TeamScore(float i, string label, float scoreflags);
63 * Set the label of a player score item, as well as the scoring flags.
65 void ScoreInfo_SetLabel_PlayerScore(float i, string label, float scoreflags);
68 * Clear ALL scores (for ready-restart).
70 void Score_ClearAll();
73 * Prints the scores (ugly!) to the console.
75 void Score_DebugPrint();
78 * Sets the following results for the current scores entities.
80 void WinningConditionHelper();
81 float WinningConditionHelper_topscore; ///< highest score
82 float WinningConditionHelper_equality; ///< 1 if and only if the top two have equal scores
83 float WinningConditionHelper_winnerteam; ///< the color of the winning team, or -1 if none
84 entity WinningConditionHelper_winner; ///< the winning player, or world if none