r4613 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Fri Oct 3 11:14:47 EDT 2008


Author: div0
Date: 2008-10-03 11:14:47 -0400 (Fri, 03 Oct 2008)
New Revision: 4613

Modified:
   trunk/data/qcsrc/server/cl_impulse.qc
Log:
fix crash when creating WP fails


Modified: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc	2008-10-03 15:06:50 UTC (rev 4612)
+++ trunk/data/qcsrc/server/cl_impulse.qc	2008-10-03 15:14:47 UTC (rev 4613)
@@ -189,16 +189,22 @@
 		{
 			case 30:
 				wp = WaypointSprite_DeployPersonal("waypoint", self.origin);
-				WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
-				WaypointSprite_Ping(wp);
+				if(wp)
+				{
+					WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
+					WaypointSprite_Ping(wp);
+				}
 				self.personal_v_angle = self.v_angle;
 				self.personal_velocity = self.velocity;
 				sprint(self, "personal waypoint spawned at location\n");
 				break;
 			case 31:
 				wp = WaypointSprite_DeployPersonal("waypoint", self.cursor_trace_endpos);
-				WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
-				WaypointSprite_Ping(wp);
+				if(wp)
+				{
+					WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
+					WaypointSprite_Ping(wp);
+				}
 				self.personal_v_angle = self.v_angle;
 				self.personal_velocity = '0 0 0';
 				sprint(self, "personal waypoint spawned at crosshair\n");
@@ -207,8 +213,11 @@
 				if(vlen(self.death_origin))
 				{
 					wp = WaypointSprite_DeployPersonal("waypoint", self.death_origin);
-					WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
-					WaypointSprite_Ping(wp);
+					if(wp)
+					{
+						WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
+						WaypointSprite_Ping(wp);
+					}
 					self.personal_v_angle = self.v_angle;
 					self.personal_velocity = '0 0 0';
 					sprint(self, "personal waypoint spawned at death location\n");
@@ -217,51 +226,72 @@
 			case 33:
 				if(self.deadflag == DEAD_NO && teams_matter)
 				{
-					wp = WaypointSprite_Attach("helpme", TRUE);
-					WaypointSprite_UpdateTeamRadar(wp, RADARICON_HELPME, '1 1 0');
-					WaypointSprite_Ping(wp);
+					WaypointSprite_Attach("helpme", TRUE);
+					if(waypointsprite_attachedforcarrier) // this can also be the FLAG CARRIER sprite
+					{
+						WaypointSprite_UpdateTeamRadar(waypointsprite_attachedforcarrier, RADARICON_HELPME, '1 1 0');
+						WaypointSprite_Ping(waypointsprite_attachedforcarrier);
+					}
 					sprint(self, "HELP ME attached\n");
 				}
 				break;
 			case 34:
 				wp = WaypointSprite_DeployFixed("here", FALSE, self.origin);
-				WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
-				WaypointSprite_Ping(wp);
+				if(wp)
+				{
+					WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
+					WaypointSprite_Ping(wp);
+				}
 				sprint(self, "HERE spawned at location\n");
 				break;
 			case 35:
 				wp = WaypointSprite_DeployFixed("here", FALSE, self.cursor_trace_endpos);
-				WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
-				WaypointSprite_Ping(wp);
+				if(wp)
+				{
+					WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
+					WaypointSprite_Ping(wp);
+				}
 				sprint(self, "HERE spawned at crosshair\n");
 				break;
 			case 36:
 				if(vlen(self.death_origin))
 				{
 					wp = WaypointSprite_DeployFixed("here", FALSE, self.death_origin);
+					if(wp)
+					{
+						WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
+						WaypointSprite_Ping(wp);
+					}
 					sprint(self, "HERE spawned at death location\n");
-					WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
-					WaypointSprite_Ping(wp);
 				}
 				break;
 			case 37:
 				wp = WaypointSprite_DeployFixed("danger", FALSE, self.origin);
-				WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');
-				WaypointSprite_Ping(wp);
+				if(wp)
+				{
+					WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');
+					WaypointSprite_Ping(wp);
+				}
 				sprint(self, "DANGER spawned at location\n");
 				break;
 			case 38:
 				wp = WaypointSprite_DeployFixed("danger", FALSE, self.cursor_trace_endpos);
-				WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');
-				WaypointSprite_Ping(wp);
+				if(wp)
+				{
+					WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');
+					WaypointSprite_Ping(wp);
+				}
 				sprint(self, "DANGER spawned at crosshair\n");
 				break;
 			case 39:
 				if(vlen(self.death_origin))
 				{
 					wp = WaypointSprite_DeployFixed("danger", FALSE, self.death_origin);
-					WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');
-					WaypointSprite_Ping(wp);
+					if(wp)
+					{
+						WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');
+						WaypointSprite_Ping(wp);
+					}
 					sprint(self, "DANGER spawned at death location\n");
 				}
 				break;




More information about the nexuiz-commits mailing list