X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fscores.qh;h=178181cbada248a0ee7e55f5da55b8583d09d6ea;hp=a462bde92c4bed31f706262a2314b43a5c3ff8f0;hb=d2b0f12cb08fe3d1e59d3c9514546c4858cf9012;hpb=6a611fb362129440369cb09a590023d6292102e9 diff --git a/qcsrc/server/scores.qh b/qcsrc/server/scores.qh index a462bde92..178181cba 100644 --- a/qcsrc/server/scores.qh +++ b/qcsrc/server/scores.qh @@ -1,11 +1,10 @@ #pragma once -#include +#include + +bool autocvar_g_full_getstatus_responses; entity scores_initialized; // non-NULL when scores labels/rules have been set -.float scores[MAX_SCORE]; -.float teamscores[MAX_TEAMSCORE]; -.float scoreboard_pos; /** * Attaches a PlayerScore entity to a player. Use that in ClientConnect. @@ -24,7 +23,23 @@ void PlayerScore_Detach(entity player); * Means: FIXME make players unable to join the game when not called ClientConnect yet. * Returns the new score. */ -float PlayerScore_Add(entity player, float scorefield, float score); +float PlayerScore_Add(entity player, PlayerScoreField scorefield, float score); + +/** + * Sets the player's score to the score parameter. + * NEVER call this if PlayerScore_Attach has not been called yet! + * Means: FIXME make players unable to join the game when not called ClientConnect yet. + * Returns the new (or old if unchanged) score. + */ +float PlayerScore_Set(entity player, PlayerScoreField scorefield, float score); + +/** + * \brief Returns the player's score. + * \param[in] player Player to inspect. + * \param[in] scorefield Field of the score. + * \return Player's score. + */ +#define PlayerScore_Get(player, scorefield) PlayerScore_Add(player, scorefield, 0) /** * Initialize the score of this player if needed. @@ -46,7 +61,7 @@ float TeamScore_Add(entity player, float scorefield, float score); * NEVER call this if team has not been set yet! * Returns the new score. */ -float TeamScore_AddToTeam(float t, float scorefield, float score); +float TeamScore_AddToTeam(int t, float scorefield, float score); /** * Returns a value indicating the team score (and higher is better). @@ -57,12 +72,7 @@ float TeamScore_GetCompareValue(float t); * Adds a score to both the player and the team. Returns the team score if * possible, otherwise the player score. */ -float PlayerTeamScore_Add(entity player, float pscorefield, float tscorefield, float score); - -/** - * Adds to the generic score fields for both the player and the team. - */ -#define PlayerTeamScore_AddScore(p,s) PlayerTeamScore_Add(p, SP_SCORE, ST_SCORE, s) +float PlayerTeamScore_Add(entity player, PlayerScoreField pscorefield, float tscorefield, float score); /** * Set the label of a team score item, as well as the scoring flags. @@ -72,7 +82,7 @@ void ScoreInfo_SetLabel_TeamScore(float i, string label, float scoreflags); /** * Set the label of a player score item, as well as the scoring flags. */ -void ScoreInfo_SetLabel_PlayerScore(float i, string label, float scoreflags); +void ScoreInfo_SetLabel_PlayerScore(PlayerScoreField i, string label, float scoreflags); /** * Initialize the scores info for the given number of teams. @@ -127,4 +137,4 @@ string GetTeamScoreString(float tm, float shortString); * strict: return a strict ordering * nospectators: exclude spectators */ -entity PlayerScore_Sort(.float field, float teams, float strict, float nospectators); +entity PlayerScore_Sort(.float field, int teams, bool strict, bool nospectators);