r5634 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Jan 22 07:54:13 EST 2009


Author: div0
Date: 2009-01-22 07:54:13 -0500 (Thu, 22 Jan 2009)
New Revision: 5634

Modified:
   trunk/data/qcsrc/server/arena.qc
   trunk/data/qcsrc/server/assault.qc
   trunk/data/qcsrc/server/cl_player.qc
   trunk/data/qcsrc/server/defs.qh
   trunk/data/qcsrc/server/g_triggers.qc
   trunk/data/qcsrc/server/t_items.qc
Log:
more self-resetting


Modified: trunk/data/qcsrc/server/arena.qc
===================================================================
--- trunk/data/qcsrc/server/arena.qc	2009-01-22 12:45:41 UTC (rev 5633)
+++ trunk/data/qcsrc/server/arena.qc	2009-01-22 12:54:13 UTC (rev 5634)
@@ -50,30 +50,8 @@
 		if(self.team_saved)
 			self.team = self.team_saved;
 
-		if(self.classname == "droppedweapon"		// cleanup
-				|| self.classname == "gib"
-				|| self.classname == "body")
+		if(self.flags & FL_PROJECTILE) // remove any projectiles left
 		{
-			remove(self);
-		}
-		else if(self.flags & FL_ITEM)			// reset items
-		{
-			if(self.state == 1)
-			{
-				self.model = string_null;
-				self.solid = SOLID_NOT;
-			}
-			else
-			{
-				self.model = self.mdl;
-				self.solid = SOLID_TRIGGER;
-			}
-			setorigin (self, self.origin);
-			self.think = SUB_Null;
-			self.nextthink = 0;
-		}
-		else if(self.flags & FL_PROJECTILE)		// remove any projectiles left
-		{
 			stopsound(self, CHAN_PAIN);
 			remove(self);
 		}
@@ -83,25 +61,17 @@
 	for(self = world; (self = nextent(self)); )
 	if(clienttype(self) == CLIENTTYPE_NOTACLIENT)
 	{
+		if(self.reset2)
+		{
+			self.reset2();
+			continue;
+		}
+
 		if(self.classname == "sprite_waypoint")
 		{
-			if(self.health || g_keyhunt)
+			if(self.health || g_keyhunt) // TODO remove this KH workaround somehow
 				WaypointSprite_Kill(self);
 		}
-		else if(self.classname == "target_assault_roundstart")
-		{
-			self.use();
-		}
-		else if(self.classname == "trigger_gamestart")
-		{
-			if(self.wait)
-			{
-				self.think = self.use;
-				self.nextthink = game_starttime + self.wait;
-			}
-			else
-				self.use();
-		}
 	}
 
 	// Moving the player reset code here since the player-reset depends

Modified: trunk/data/qcsrc/server/assault.qc
===================================================================
--- trunk/data/qcsrc/server/assault.qc	2009-01-22 12:45:41 UTC (rev 5633)
+++ trunk/data/qcsrc/server/assault.qc	2009-01-22 12:54:13 UTC (rev 5634)
@@ -253,6 +253,7 @@
 	assault_attacker_team = COLOR_TEAM1;
 	self.classname = "target_assault_roundstart";
 	self.use = assault_roundstart_use;
+	self.reset2 = assault_roundstart_use;
 	InitializeEntity(self, assault_roundstart_use, INITPRIO_FINDTARGET);
 }
 

Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc	2009-01-22 12:45:41 UTC (rev 5633)
+++ trunk/data/qcsrc/server/cl_player.qc	2009-01-22 12:54:13 UTC (rev 5634)
@@ -61,6 +61,7 @@
 	setorigin(self, oldself.origin);
 	setsize(self, oldself.mins, oldself.maxs);
 	self.oldorigin = oldself.origin;
+	self.reset = SUB_Remove;
 	self = oldself;
 }
 

Modified: trunk/data/qcsrc/server/defs.qh
===================================================================
--- trunk/data/qcsrc/server/defs.qh	2009-01-22 12:45:41 UTC (rev 5633)
+++ trunk/data/qcsrc/server/defs.qh	2009-01-22 12:54:13 UTC (rev 5634)
@@ -528,3 +528,4 @@
 void SUB_UseTargets();
 
 .void() reset; // if set, an entity is reset using this
+.void() reset2; // if set, an entity is reset using this (after calling ALL the reset functions for other entities)

Modified: trunk/data/qcsrc/server/g_triggers.qc
===================================================================
--- trunk/data/qcsrc/server/g_triggers.qc	2009-01-22 12:45:41 UTC (rev 5633)
+++ trunk/data/qcsrc/server/g_triggers.qc	2009-01-22 12:54:13 UTC (rev 5634)
@@ -1393,6 +1393,7 @@
 
 void spawnfunc_trigger_gamestart() {
 	self.use = gamestart_use;
+	self.reset2 = spawnfunc_trigger_gamestart;
 
 	if(self.wait)
 	{

Modified: trunk/data/qcsrc/server/t_items.qc
===================================================================
--- trunk/data/qcsrc/server/t_items.qc	2009-01-22 12:45:41 UTC (rev 5633)
+++ trunk/data/qcsrc/server/t_items.qc	2009-01-22 12:54:13 UTC (rev 5634)
@@ -295,6 +295,23 @@
 	}
 }
 
+void Item_Reset()
+{
+	if(self.state == 1)
+	{
+		self.model = string_null;
+		self.solid = SOLID_NOT;
+	}
+	else
+	{
+		self.model = self.mdl;
+		self.solid = SOLID_TRIGGER;
+	}
+	setorigin (self, self.origin);
+	self.think = SUB_Null;
+	self.nextthink = 0;
+}
+
 // Savage: used for item garbage-collection
 // TODO: perhaps nice special effect?
 void RemoveItem(void)
@@ -353,6 +370,7 @@
 	// is it a dropped weapon?
 	if (self.classname == "droppedweapon")
 	{
+		self.reset = SUB_Remove;
 		// it's a dropped weapon
 		self.movetype = MOVETYPE_TOSS;
 		self.solid = SOLID_TRIGGER;
@@ -370,6 +388,7 @@
 	}
 	else
 	{
+		self.reset = Item_Reset;
 		// it's a level item
 		if(self.spawnflags & 1)
 			self.noalign = 1;




More information about the nexuiz-commits mailing list