r4867 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Oct 25 03:50:19 EDT 2008


Author: div0
Date: 2008-10-25 03:50:06 -0400 (Sat, 25 Oct 2008)
New Revision: 4867

Modified:
   trunk/data/qcsrc/server/cl_client.qc
   trunk/data/qcsrc/server/miscfunctions.qc
Log:
fix ClientDisconnect possibly using a strunzoned string


Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc	2008-10-24 12:57:49 UTC (rev 4866)
+++ trunk/data/qcsrc/server/cl_client.qc	2008-10-25 07:50:06 UTC (rev 4867)
@@ -1271,11 +1271,8 @@
 .entity chatbubbleentity;
 .entity teambubbleentity;
 void ReadyCount();
-//void() ctf_clientdisconnect;
 void ClientDisconnect (void)
 {
-	float save;
-
 	if not(self.flags & FL_CLIENT)
 	{
 		print("Warning: ClientDisconnect without ClientConnect\n");
@@ -1292,38 +1289,30 @@
 	bprint ("^4",self.netname);
 	bprint ("^4 disconnected\n");
 
+	DropAllRunes(self);
+	kh_Key_DropAll(self, TRUE);
+
+	Portal_ClearAll(self);
+
+	if(self.flagcarried)
+		DropFlag(self.flagcarried, world, world);
+
+	// Here, everything has been done that requires this player to be a client.
+
+	self.flags (-) FL_CLIENT;
+
 	if (self.chatbubbleentity)
-	{
 		remove (self.chatbubbleentity);
-		self.chatbubbleentity = world;
-	}
 
 	if (self.teambubbleentity)
-	{
 		remove (self.teambubbleentity);
-		self.teambubbleentity = world;
-	}
 
 	if (self.killindicator)
-	{
 		remove (self.killindicator);
-		self.killindicator = world;
-	}
 
-	DropAllRunes(self);
-	kh_Key_DropAll(self, TRUE);
-
-	Portal_ClearAll(self);
-
-	if(self.flagcarried)
-		DropFlag(self.flagcarried, world, world);
-
 	WaypointSprite_PlayerGone();
 
-	save = self.flags;
-	self.flags = self.flags - (self.flags & FL_CLIENT);
 	bot_relinkplayerlist();
-	self.flags = save;
 
 	// remove laserdot
 	if(self.weaponentity)
@@ -1335,11 +1324,6 @@
 		Spawnqueue_Unmark(self);
 		Spawnqueue_Remove(self);
 	}
-	/*if(g_ctf)
-	{
-		ctf_clientdisconnect();
-	}
-	*/
 
 	PlayerScore_Detach(self);
 
@@ -1348,11 +1332,11 @@
 
 	ClearPlayerSounds();
 
-	// free cvars
-	GetCvars(-1);
 	self.playerid = 0;
-
 	ReadyCount();
+
+	// free cvars
+	GetCvars(-1);
 }
 
 .float BUTTON_CHAT;

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2008-10-24 12:57:49 UTC (rev 4866)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2008-10-25 07:50:06 UTC (rev 4867)
@@ -481,6 +481,7 @@
 	{
 		if(self.field)
 			strunzone(self.field);
+		self.field = string_null;
 	}
 	else if(f > 0)
 	{
@@ -787,7 +788,7 @@
 			start_ammo_nails = cvar("g_pickup_nails_max");
 			start_ammo_rockets = cvar("g_pickup_rockets_max");
 			start_ammo_cells = cvar("g_pickup_cells_max");
-			start_items |= IT_UNLIMITED_WEAPON_AMMO;
+			start_items |= IT_UNLIMITED_AMMO;
 		}
 
 		for(i = WEP_FIRST; i <= WEP_LAST; ++i)




More information about the nexuiz-commits mailing list