X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fscores.qc;h=b09657e6a5832d8b93bae23b537daaa26fe6946e;hb=669311cae7c93d70ff08fa2e3dd30cabdd2da8fa;hp=e29d1723ba0aaa24abfaa124be7504695f80db9c;hpb=f1a87492d9fed27a64d0e99c068705aba5509f26;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/scores.qc b/qcsrc/server/scores.qc index e29d1723b..b09657e6a 100644 --- a/qcsrc/server/scores.qc +++ b/qcsrc/server/scores.qc @@ -89,8 +89,7 @@ bool TeamScore_SendEntity(entity this, entity to, float sendflags) void TeamScore_Spawn(float t, string name) { - entity ts = new(csqc_score_team); - make_pure(ts); + entity ts = new_pure(csqc_score_team); ts.netname = name; // not used yet, FIXME ts.team = t; Net_LinkEntity(ts, false, 0, TeamScore_SendEntity); @@ -212,8 +211,7 @@ void ScoreInfo_Init(float teams) } else { - scores_initialized = new(ent_client_scoreinfo); - make_pure(scores_initialized); + scores_initialized = new_pure(ent_client_scoreinfo); Net_LinkEntity(scores_initialized, false, 0, ScoreInfo_SendEntity); } if(teams >= 1) @@ -285,32 +283,32 @@ float PlayerScore_Clear(entity player) void Score_ClearAll() { - entity p, sk; - float i, t; - FOR_EACH_CLIENTSLOT(p) + entity sk; + float t; + FOREACH_CLIENTSLOT(true, { - sk = p.scorekeeper; + sk = it.scorekeeper; if(!sk) continue; - for(i = 0; i < MAX_SCORE; ++i) + for(int j = 0; j < MAX_SCORE; ++j) { - if(sk.(scores[i]) != 0) - if(scores_label[i] != "") - sk.SendFlags |= pow(2, i); - sk.(scores[i]) = 0; + if(sk.(scores[j]) != 0) + if(scores_label[j] != "") + sk.SendFlags |= pow(2, j); + sk.(scores[j]) = 0; } - } + }); for(t = 0; t < 16; ++t) { sk = teamscorekeepers[t]; if(!sk) continue; - for(i = 0; i < MAX_TEAMSCORE; ++i) + for(int j = 0; j < MAX_TEAMSCORE; ++j) { - if(sk.(teamscores[i]) != 0) - if(teamscores_label[i] != "") - sk.SendFlags |= pow(2, i); - sk.(teamscores[i]) = 0; + if(sk.(teamscores[j]) != 0) + if(teamscores_label[j] != "") + sk.SendFlags |= pow(2, j); + sk.(teamscores[j]) = 0; } } } @@ -319,8 +317,7 @@ void PlayerScore_Attach(entity player) { if(player.scorekeeper) error("player already has a scorekeeper"); - entity sk = new(scorekeeper); - make_pure(sk); + entity sk = new_pure(scorekeeper); sk.owner = player; Net_LinkEntity(sk, false, 0, PlayerScore_SendEntity); player.scorekeeper = sk; @@ -349,7 +346,7 @@ float PlayerScore_Add(entity player, float scorefield, float score) { if(gameover) return 0; - backtrace("Adding score to unknown player!"); + LOG_WARNING("Adding score to unknown player!"); return 0; } if(score) @@ -390,9 +387,9 @@ float PlayerScore_Compare(entity t1, entity t2, float strict) void WinningConditionHelper() { + SELFPARAM(); float c; string s; - entity p; float fullstatus; entity winnerscorekeeper; entity secondscorekeeper; @@ -409,7 +406,7 @@ void WinningConditionHelper() s = GetGametype(); s = strcat(s, ":", autocvar_g_xonoticversion); s = strcat(s, ":P", ftos(cvar_purechanges_count)); - s = strcat(s, ":S", ftos(nJoinAllowed(world))); + s = strcat(s, ":S", ftos(nJoinAllowed(self, world))); s = strcat(s, ":F", ftos(serverflags)); s = strcat(s, ":M", modname); s = strcat(s, "::", GetPlayerScoreString(world, (fullstatus ? 1 : 2))); @@ -467,14 +464,13 @@ void WinningConditionHelper() WinningConditionHelper_second = world; winnerscorekeeper = world; secondscorekeeper = world; - FOR_EACH_PLAYER(p) - { - sk = p.scorekeeper; + FOREACH_CLIENT(IS_PLAYER(it), LAMBDA( + sk = it.scorekeeper; c = PlayerScore_Compare(winnerscorekeeper, sk, 1); if(c < 0) { WinningConditionHelper_second = WinningConditionHelper_winner; - WinningConditionHelper_winner = p; + WinningConditionHelper_winner = it; secondscorekeeper = winnerscorekeeper; winnerscorekeeper = sk; } @@ -483,11 +479,11 @@ void WinningConditionHelper() c = PlayerScore_Compare(secondscorekeeper, sk, 1); if(c < 0) { - WinningConditionHelper_second = p; + WinningConditionHelper_second = it; secondscorekeeper = sk; } } - } + )); WinningConditionHelper_equality = (PlayerScore_Compare(winnerscorekeeper, secondscorekeeper, 0) == 0); if(WinningConditionHelper_equality) @@ -529,32 +525,31 @@ void WinningConditionHelper() strunzone(worldstatus); worldstatus = strzone(s); - FOR_EACH_CLIENT(p) - { + FOREACH_CLIENT(true, LAMBDA( string s = ""; if(fullstatus) { - s = GetPlayerScoreString(p, 1); - s = strcat(s, IS_REAL_CLIENT(p) ? ":human" : ":bot"); + s = GetPlayerScoreString(it, 1); + s = strcat(s, IS_REAL_CLIENT(it) ? ":human" : ":bot"); ret_string = string_null; - if(!IS_PLAYER(p) && !MUTATOR_CALLHOOK(GetPlayerStatus, p, s)) + if(!IS_PLAYER(it) && !MUTATOR_CALLHOOK(GetPlayerStatus, it, s)) s = strcat(s, ":spectator"); if (ret_string) s = strcat(s, ret_string); } else { ret_string = string_null; - if (IS_PLAYER(p) || MUTATOR_CALLHOOK(GetPlayerStatus, p, s)) - s = GetPlayerScoreString(p, 2); + if (IS_PLAYER(it) || MUTATOR_CALLHOOK(GetPlayerStatus, it, s)) + s = GetPlayerScoreString(it, 2); else s = "-666"; if (ret_string) s = strcat(s, ret_string); } - if(p.clientstatus) - strunzone(p.clientstatus); - p.clientstatus = strzone(s); - } + if(it.clientstatus) + strunzone(it.clientstatus); + it.clientstatus = strzone(s); + )); } string GetScoreLogLabel(string label, float fl) @@ -707,18 +702,17 @@ entity PlayerScore_Sort(.float field, float teams, float strict, float nospectat plist = world; - FOR_EACH_CLIENT(p) - p.(field) = 0; + FOREACH_CLIENT(true, LAMBDA(it.(field) = 0)); - FOR_EACH_CLIENT(p) if(p.scorekeeper) + FOREACH_CLIENT(it.scorekeeper, { if(nospectators) - if(p.frags == FRAGS_SPECTATOR) + if(it.frags == FRAGS_SPECTATOR) continue; - p.chain = plist; - plist = p; - } + it.chain = plist; + plist = it; + }); // Now plist points to the whole list. pfirst = plast = world; @@ -881,10 +875,10 @@ void Score_NicePrint_Spectator(entity to, entity p) void Score_NicePrint(entity to) { entity p; - float t, i; + float i; float w; - t = 0; + int t = 0; for(i = 0; i < MAX_SCORE; ++i) if(scores_label[i] != "") ++t; @@ -906,14 +900,12 @@ void Score_NicePrint(entity to) } t = 0; - FOR_EACH_CLIENT(p) - if (!IS_PLAYER(p)) - { + FOREACH_CLIENT(!IS_PLAYER(it), LAMBDA( if (!t) Score_NicePrint_Spectators(to); - Score_NicePrint_Spectator(to, p); + Score_NicePrint_Spectator(to, it); t = 1; - } + )); } void PlayerScore_PlayerStats(entity p)