r4577 - in trunk/data/qcsrc: client server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Thu Oct 2 08:00:55 EDT 2008


Author: div0
Date: 2008-10-02 08:00:55 -0400 (Thu, 02 Oct 2008)
New Revision: 4577

Modified:
   trunk/data/qcsrc/client/Main.qc
   trunk/data/qcsrc/server/keyhunt.qc
Log:
keyhunt support


Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc	2008-10-02 11:37:16 UTC (rev 4576)
+++ trunk/data/qcsrc/client/Main.qc	2008-10-02 12:00:55 UTC (rev 4577)
@@ -535,7 +535,7 @@
 	else if(self.enttype == ENT_CLIENT_WAYPOINT)
 		Ent_WaypointSprite();
 	else
-		error("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n");
+		error(strcat("unknown entity type in CSQC_Ent_Update: ", ftos(self.enttype), "\n"));
 	
 };
 // Destructor, but does NOT deallocate the entity by calling remove(). Also

Modified: trunk/data/qcsrc/server/keyhunt.qc
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qc	2008-10-02 11:37:16 UTC (rev 4576)
+++ trunk/data/qcsrc/server/keyhunt.qc	2008-10-02 12:00:55 UTC (rev 4577)
@@ -258,9 +258,13 @@
 
 void kh_Key_AssignTo(entity key, entity player)  // runs every time a key is picked up or assigned. Runs prior to kh_key_attach
 {
+	entity k;
+	float ownerteam0, ownerteam;
 	if(key.owner == player)
 		return;
 
+	ownerteam0 = kh_Key_AllOwnedByWhichTeam();
+
 	if(key.owner)
 	{
 		kh_Key_Detach(key);
@@ -275,6 +279,7 @@
 		if(key.owner.kh_next == world)
 		{
 			// No longer a key carrier
+			WaypointSprite_Ping(key.owner.waypointsprite_attachedforcarrier);
 			WaypointSprite_DetachCarrier(key.owner);
 		}
 	}
@@ -318,6 +323,8 @@
 				WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-yellow", "keycarrier-friend", "");
 			else if(player.team == COLOR_TEAM4)
 				WaypointSprite_UpdateSprites(player.waypointsprite_attachedforcarrier, "keycarrier-pink", "keycarrier-friend", "");
+			WaypointSprite_UpdateTeamRadar(player.waypointsprite_attachedforcarrier, RADARICON_FLAGCARRIER, colormapPaletteColor(player.team - 1));
+			WaypointSprite_Ping(player.waypointsprite_attachedforcarrier);
 		}
 	}
 	
@@ -327,6 +334,32 @@
 		key.owner.kh_state = (key.owner.kh_state | 255) - 255 + test[key.owner.playerid];
 		
 	key.pusher = world;
+
+	ownerteam = kh_Key_AllOwnedByWhichTeam();
+	if(ownerteam != ownerteam0)
+	{
+		if(ownerteam != -1)
+		{
+			kh_interferemsg_time = time + 0.2;
+			kh_interferemsg_team = player.team;
+
+			// audit all key carrier sprites, update them to RUN HERE
+			FOR_EACH_KH_KEY(k)
+			{
+				if(k.owner)
+					WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model, "keycarrier-finish", "");
+			}
+		}
+		else
+		{
+			// audit all key carrier sprites, update them to RUN HERE
+			FOR_EACH_KH_KEY(k)
+			{
+				if(k.owner)
+					WaypointSprite_UpdateSprites(k.owner.waypointsprite_attachedforcarrier, k.owner.waypointsprite_attachedforcarrier.model, "keycarrier-friend", "");
+			}
+		}
+	}
 }
 
 void kh_Key_Damage(entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
@@ -385,8 +418,9 @@
 
 	centerprint(initial_owner, strcat("You are starting with the ", key.netname, "\n"));  // message to player at start of round
 
-	WaypointSprite_Spawn("", 0, 0, key, '0 0 1' * KH_KEY_WP_ZSHIFT, world, key.team, key, waypointsprite_attachedforcarrier, FALSE);
+	WaypointSprite_Spawn("key-dropped", 0, 0, key, '0 0 1' * KH_KEY_WP_ZSHIFT, world, key.team, key, waypointsprite_attachedforcarrier, FALSE);
 	key.waypointsprite_attachedforcarrier.waypointsprite_visible_for_player = kh_Key_waypointsprite_visible_for_player;
+	WaypointSprite_UpdateTeamRadar(key.waypointsprite_attachedforcarrier, RADARICON_FLAG, '0 1 1');
 
 	kh_Key_AssignTo(key, initial_owner);
 }
@@ -442,6 +476,9 @@
 
 void kh_Key_Collect(entity key, entity player)  //a player picks up a dropped key
 {
+	float ownerteam;
+	entity k;
+
 	sound(player, CHAN_AUTO, kh_sound_collect, VOL_BASE, ATTN_NORM);
 
 	if(key.kh_dropperteam != player.team)
@@ -453,14 +490,6 @@
 	bprint(player.netname, "^7 picked up the ", key.netname, "\n");
 
 	kh_Key_AssignTo(key, player); // this also updates .kh_state
-
-	if(kh_Key_AllOwnedByWhichTeam() != -1)
-	{
-		kh_interferemsg_time = time + 0.2;
-		kh_interferemsg_team = player.team;
-
-		// audit all key carrier sprites, update them to RUN HERE
-	}
 }
 
 void kh_Key_DropAll(entity player, float suicide) // runs whenever a player dies




More information about the nexuiz-commits mailing list