From 1a96e35180bdaa1cac7a80cf10223f940ed31d17 Mon Sep 17 00:00:00 2001 From: div0 Date: Fri, 25 Jul 2008 05:49:13 +0000 Subject: [PATCH] some scores updates; route even more through them; fix team change and connect git-svn-id: svn://svn.icculus.org/nexuiz/trunk@3904 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_client.qc | 10 ++++++---- data/qcsrc/server/g_damage.qc | 5 ++++- data/qcsrc/server/keyhunt.qc | 3 +-- data/qcsrc/server/scores.qc | 8 -------- data/qcsrc/server/scores.qh | 9 --------- data/qcsrc/server/teamplay.qc | 3 +++ 6 files changed, 14 insertions(+), 24 deletions(-) diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 9574852f0..6c0b51eab 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -385,6 +385,8 @@ void PutObserverInServer (void) else if(self.killcount != -666) bprint ("^4", self.netname, "^4 is spectating now\n"); + PlayerScore_Clear(self); // clear scores when needed + self.spectatortime = time; self.classname = "observer"; @@ -1176,10 +1178,6 @@ void ClientDisconnect (void) bot_clientdisconnect(); -#ifdef CSQCSCORES - PlayerScore_Detach(self); -#endif - if(entcs_start) detach_entcs(); @@ -1242,6 +1240,10 @@ void ClientDisconnect (void) } */ +#ifdef CSQCSCORES + PlayerScore_Detach(self); +#endif + if(self.netname_previous) strunzone(self.netname_previous); diff --git a/data/qcsrc/server/g_damage.qc b/data/qcsrc/server/g_damage.qc index 0b031b36d..b7056df31 100644 --- a/data/qcsrc/server/g_damage.qc +++ b/data/qcsrc/server/g_damage.qc @@ -42,9 +42,12 @@ float IsFlying(entity a) void UpdateFrags(entity player, float f) { +#ifndef CSQCSCORES // TODO remove this, make callers route through PlayerScores instead player.frags += f; player.totalfrags += f; +#endif + PlayerTeamScore_AddScore(player, f); } void GiveFrags (entity attacker, entity targ, float f) @@ -244,7 +247,7 @@ void Obituary (entity attacker, entity targ, float deathtype) bprint ("^1", a, "^1 mows down a teammate\n"); } GiveFrags(attacker, targ, -1); - PlayerScore_Add(attacker, -1); // teamkills DO cound as -1 kill right? + PlayerScore_Add(attacker, SP_KILLS, -1); // teamkills DO cound as -1 kill right? if (targ.killcount > 2) { if(sv_gentle) bprint ("^1",s,"'s ^1",ftos(targ.killcount)," scoring spree was ended by a teammate!\n"); diff --git a/data/qcsrc/server/keyhunt.qc b/data/qcsrc/server/keyhunt.qc index eef30eabf..7842dcd7e 100644 --- a/data/qcsrc/server/keyhunt.qc +++ b/data/qcsrc/server/keyhunt.qc @@ -473,8 +473,7 @@ void kh_Key_DropAll(entity player, float suicide) // runs whenever a player dies while((key = player.kh_next)) { kh_Scores_Event(player, key, "losekey", 0, 0); - if(PlayerScore_IsValid(player)) - PlayerScore_Add(player, SP_KH_LOSEKEY, 1); + PlayerScore_Add(player, SP_KH_LOSEKEY, 1); bprint(player.netname, "^7 died and lost the ", key.netname, "\n"); kh_Key_AssignTo(key, world); makevectors('-1 0 0' * (45 + 45 * random()) + '0 360 0' * random()); diff --git a/data/qcsrc/server/scores.qc b/data/qcsrc/server/scores.qc index 32c8135dc..4373c4952 100644 --- a/data/qcsrc/server/scores.qc +++ b/data/qcsrc/server/scores.qc @@ -200,14 +200,6 @@ void Score_ClearAll() } } -float PlayerScore_IsValid(entity player) -{ - if(!player.scorekeeper) - return FALSE; - - return TRUE; -} - void PlayerScore_Attach(entity player) { entity sk; diff --git a/data/qcsrc/server/scores.qh b/data/qcsrc/server/scores.qh index 14631a223..c01334510 100644 --- a/data/qcsrc/server/scores.qh +++ b/data/qcsrc/server/scores.qh @@ -16,15 +16,6 @@ void PlayerScore_Detach(entity player); */ void PlayerScore_Add(entity player, float scorefield, float score); -/** - * Check if the player can have scores. - * This is needed for example in keyhunt, when the carrier disconnects. - * The key-losing happens too late... which should probably be fixed - * but I'm just not in the mood to do that now as I'm busy making the - * csqc part work <.< - */ -float PlayerScore_IsValid(entity player); - /** * Initialize the score of this player if needed. * Does nothing in teamplay. diff --git a/data/qcsrc/server/teamplay.qc b/data/qcsrc/server/teamplay.qc index 9bf7c933d..196c4e5c9 100644 --- a/data/qcsrc/server/teamplay.qc +++ b/data/qcsrc/server/teamplay.qc @@ -25,6 +25,7 @@ float IsTeamBalanceForced() void TeamchangeFrags(entity e) { +#ifndef CSQCSCORES if(g_ctf) { e.captures = 0; @@ -34,6 +35,8 @@ void TeamchangeFrags(entity e) // reduce frags during a team change DistributeFragsAmongTeam(e, (e.clientcolors & 0x0F) + 1, 1 - cvar("g_changeteam_fragtransfer") / 100); } +#endif + PlayerScore_Clear(e); } vector TeamColor(float teem) -- 2.39.2