X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fscores.qh;h=e2a57f43fb4a3ffaf36b6a5d33f1d475d793e9db;hp=8c9af4534fa1158106727abaf7b52716f4ad0908;hb=d865de7a9a17c5a1d9286aec40f68c3530697660;hpb=88713a575bd27dabc5926d636542b6145ab6f51c diff --git a/qcsrc/server/scores.qh b/qcsrc/server/scores.qh index 8c9af4534..e2a57f43f 100644 --- a/qcsrc/server/scores.qh +++ b/qcsrc/server/scores.qh @@ -1,11 +1,8 @@ -#ifndef SCORES_H -#define SCORES_H +#pragma once -#include "../common/constants.qh" +#include -entity scores_initialized; // non-world when scores labels/rules have been set -.float scores[MAX_SCORE]; -.float teamscores[MAX_TEAMSCORE]; +entity scores_initialized; // non-NULL when scores labels/rules have been set .float scoreboard_pos; /** @@ -25,7 +22,15 @@ 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); + +/** + * \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. @@ -47,7 +52,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). @@ -58,12 +63,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. @@ -73,7 +73,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. @@ -94,21 +94,21 @@ void Score_NicePrint(entity to); /** * Sets the following results for the current scores entities. */ -void WinningConditionHelper(); +void WinningConditionHelper(entity this); float WinningConditionHelper_topscore; ///< highest score float WinningConditionHelper_secondscore; ///< second highest score float WinningConditionHelper_winnerteam; ///< the color of the winning team, or -1 if none float WinningConditionHelper_secondteam; ///< the color of the second team, or -1 if none float WinningConditionHelper_equality; ///< we have no winner -entity WinningConditionHelper_winner; ///< the winning player, or world if none -entity WinningConditionHelper_second; ///< the second player, or world if none +entity WinningConditionHelper_winner; ///< the winning player, or NULL if none +entity WinningConditionHelper_second; ///< the second player, or NULL if none float WinningConditionHelper_lowerisbetter; ///< lower is better, duh float WinningConditionHelper_zeroisworst; ///< zero is worst, duh #define WINNINGCONDITIONHELPER_LOWERISBETTER_WORST 999999999 /** * Returns score strings for eventlog etc. - * When called with world, or 0, as argument, they return the labels in the + * When called with NULL, or 0, as argument, they return the labels in the * same order. * The strings are comma separated; labels that end with !! designate primary, * labels that end with ! designate high priority. @@ -129,4 +129,3 @@ string GetTeamScoreString(float tm, float shortString); * nospectators: exclude spectators */ entity PlayerScore_Sort(.float field, float teams, float strict, float nospectators); -#endif