[nexuiz-commits] r8678 - in trunk/data/qcsrc/server: . vehicles

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Feb 27 13:26:56 EST 2010


Author: div0
Date: 2010-02-27 13:26:56 -0500 (Sat, 27 Feb 2010)
New Revision: 8678

Modified:
   trunk/data/qcsrc/server/cheats.qc
   trunk/data/qcsrc/server/cl_client.qc
   trunk/data/qcsrc/server/cl_impulse.qc
   trunk/data/qcsrc/server/cl_player.qc
   trunk/data/qcsrc/server/cl_weaponsystem.qc
   trunk/data/qcsrc/server/miscfunctions.qc
   trunk/data/qcsrc/server/vehicles/racer.qc
   trunk/data/qcsrc/server/vehicles/spiderbot.qc
Log:
get rid of lots of prydon cursor trace use, only tZork's vehicles are left

Modified: trunk/data/qcsrc/server/cheats.qc
===================================================================
--- trunk/data/qcsrc/server/cheats.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cheats.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -290,7 +290,8 @@
 				//   howmany
 				effectnum = particleeffectnum(argv(1));
 				f = stof(argv(2));
-				start = (1-f) * self.origin + f * self.cursor_trace_endpos;
+				crosshair_trace(self);
+				start = (1-f) * self.origin + f * trace_endpos;
 				end = stov(argv(3));
 				f = stof(argv(4));
 				pointparticles(effectnum, start, end, f);
@@ -395,7 +396,10 @@
 			if(argc == 4)
 				setorigin(e.aiment, stov(argv(2)));
 			else
-				setorigin(e.aiment, self.cursor_trace_endpos);
+			{
+				crosshair_trace(self);
+				setorigin(e.aiment, trace_endpos);
+			}
 
 			e.enemy = spawn();
 			e.enemy.classname = "dragbox_corner_2";
@@ -403,7 +407,7 @@
 			setmodel(e.enemy, "models/marker.md3");
 			e.enemy.skin = 1;
 			setsize(e.enemy, '0 0 0', '0 0 0');
-			end = normalize(self.cursor_trace_start - e.aiment.origin);
+			end = normalize(self.origin + self.view_ofs - e.aiment.origin);
 			end_x = (end_x > 0) * 2 - 1;
 			end_y = (end_y > 0) * 2 - 1;
 			end_z = (end_z > 0) * 2 - 1;
@@ -442,7 +446,8 @@
 				setorigin(e, stov(argv(2)));
 			else
 			{
-				setorigin(e, self.cursor_trace_endpos + normalize(self.cursor_trace_start - self.cursor_trace_endpos));
+				crosshair_trace(self);
+				setorigin(e, trace_endpos + normalize(self.origin + self.view_ofs - trace_endpos));
 				move_out_of_solid(e);
 			}
 
@@ -461,10 +466,11 @@
 		case "drag_remove":
 			IS_CHEAT(0, argc, 0);
 			RandomSelection_Init();
+			crosshair_trace(self);
 			for(e = world; (e = find(e, classname, "dragbox_box")); )
-				RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+				RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
 			for(e = world; (e = find(e, classname, "dragpoint")); )
-				RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+				RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
 			if(RandomSelection_chosen_ent)
 			{
 				remove(RandomSelection_chosen_ent.killindicator.killindicator);
@@ -482,10 +488,11 @@
 			if(argc == 2)
 			{
 				RandomSelection_Init();
+				crosshair_trace(self);
 				for(e = world; (e = find(e, classname, "dragbox_box")); )
-					RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+					RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
 				for(e = world; (e = find(e, classname, "dragpoint")); )
-					RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - self.cursor_trace_endpos));
+					RandomSelection_Add(e, 0, string_null, 1, 1 / vlen(e.origin + (e.mins + e.maxs) * 0.5 - trace_endpos));
 				if(RandomSelection_chosen_ent)
 				{
 					if(substring(argv(1), 0, 1) == "*")
@@ -721,20 +728,23 @@
 	{
 		if(Drag_CanDrag(self))
 			if(self.BUTTON_DRAG)
-				if(self.cursor_trace_ent)
-					if(Drag_IsDraggable(self.cursor_trace_ent))
+			{
+				crosshair_trace(self);
+				if(trace_ent)
+					if(Drag_IsDraggable(trace_ent))
 						switch(0)
 						{
 							default:
 								IS_CHEAT(0, 0, CHRAME_DRAG);
-								if(self.cursor_trace_ent.draggedby)
-									Drag_Finish(self.cursor_trace_ent.draggedby);
-								if(self.cursor_trace_ent.tag_entity)
-									detach_sameorigin(self.cursor_trace_ent);
-								Drag_Begin(self, self.cursor_trace_ent, self.cursor_trace_endpos);
+								if(trace_ent.draggedby)
+									Drag_Finish(trace_ent.draggedby);
+								if(trace_ent.tag_entity)
+									detach_sameorigin(trace_ent);
+								Drag_Begin(self, trace_ent, trace_endpos);
 								DID_CHEAT();
 								break;
 						}
+			}
 	}
 
 	END_CHEAT_FUNCTION();

Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_client.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -1292,6 +1292,8 @@
 	stuffcmd(e, "\nin_bindmap 0 0\n");
 	if(g_race || g_cts)
 		stuffcmd(e, "cl_cmd settemp cl_movecliptokeyboard 2\n");
+	if(cvar("g_antilag") == 3) // client side hitscan
+		stuffcmd(e, "cl_cmd settemp cl_prydoncursor -1\n");
 	/*
 	 * we no longer need to stuff this. Remove this comment block if you feel
 	 * 2.3 and higher (or was it 2.2.3?) don't need these any more

Modified: trunk/data/qcsrc/server/cl_impulse.qc
===================================================================
--- trunk/data/qcsrc/server/cl_impulse.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_impulse.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -140,7 +140,8 @@
 				sprint(self, "personal waypoint spawned at location\n");
 				break;
 			case 31:
-				wp = WaypointSprite_DeployPersonal("waypoint", self.cursor_trace_endpos);
+				crosshair_trace(self);
+				wp = WaypointSprite_DeployPersonal("waypoint", trace_endpos);
 				if(wp)
 				{
 					WaypointSprite_UpdateTeamRadar(wp, RADARICON_WAYPOINT, '0 1 1');
@@ -183,7 +184,8 @@
 				sprint(self, "HERE spawned at location\n");
 				break;
 			case 35:
-				wp = WaypointSprite_DeployFixed("here", FALSE, self.cursor_trace_endpos);
+				crosshair_trace(self);
+				wp = WaypointSprite_DeployFixed("here", FALSE, trace_endpos);
 				if(wp)
 				{
 					WaypointSprite_UpdateTeamRadar(wp, RADARICON_HERE, '0 1 0');
@@ -213,7 +215,8 @@
 				sprint(self, "DANGER spawned at location\n");
 				break;
 			case 38:
-				wp = WaypointSprite_DeployFixed("danger", FALSE, self.cursor_trace_endpos);
+				crosshair_trace(self);
+				wp = WaypointSprite_DeployFixed("danger", FALSE, trace_endpos);
 				if(wp)
 				{
 					WaypointSprite_UpdateTeamRadar(wp, RADARICON_DANGER, '1 0.5 0');

Modified: trunk/data/qcsrc/server/cl_player.qc
===================================================================
--- trunk/data/qcsrc/server/cl_player.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_player.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -811,9 +811,10 @@
 	makevectors(self.v_angle); // sets v_forward
 
 	// 1. cursor trace is always right
-	if(self.cursor_trace_ent && self.cursor_trace_ent.classname == "player" && !self.cursor_trace_ent.deadflag)
+	crosshair_trace(self);
+	if(trace_ent && trace_ent.classname == "player" && !trace_ent.deadflag)
 	{
-		selected = self.cursor_trace_ent;
+		selected = trace_ent;
 	}
 	else
 	{

Modified: trunk/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- trunk/data/qcsrc/server/cl_weaponsystem.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/cl_weaponsystem.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -208,6 +208,7 @@
 		}
 		else if(cvar("g_antilag") == 3) // client side hitscan
 		{
+			// this part MUST use prydon cursor
 			if (ent.cursor_trace_ent)                 // client was aiming at someone
 			if (ent.cursor_trace_ent != ent)         // just to make sure
 			if (ent.cursor_trace_ent.takedamage)      // and that person is killable

Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/miscfunctions.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -3,6 +3,13 @@
 void droptofloor();
 .vector dropped_origin;
 
+void traceline_antilag (entity source, vector v1, vector v2, float nomonst, entity forent, float lag);
+void crosshair_trace(entity pl)
+{
+	makevectors(pl.v_angle);
+	traceline_antilag(pl, pl.origin + pl.view_ofs, pl.origin + pl.view_ofs + v_forward * MAX_SHOT_DISTANCE, MOVE_NORMAL, pl, ANTILAG_LATENCY(pl));
+}
+
 void() spawnfunc_info_player_deathmatch; // needed for the other spawnpoints
 void() spawnpoint_use;
 float race_GetTime(float pos);
@@ -440,11 +447,17 @@
 {
 	float p, p1, p2;
 	float n;
+	vector cursor;
+	entity cursor_ent;
 	string escape;
 	string replacement;
 	p = 0;
 	n = 7;
 
+	crosshair_trace(self);
+	cursor = trace_endpos;
+	cursor_ent = trace_ent;
+
 	while (1) {
 		if (n < 1)
 			break; // too many replacements
@@ -480,7 +493,7 @@
 		else if (escape == "l")
 			replacement = NearestLocation(self.origin);
 		else if (escape == "y")
-			replacement = NearestLocation(self.cursor_trace_endpos);
+			replacement = NearestLocation(cursor);
 		else if (escape == "d")
 			replacement = NearestLocation(self.death_origin);
 		else if (escape == "w") {
@@ -498,8 +511,8 @@
 			else if (self.items & IT_CELLS) replacement = "cells";
 			else replacement = "batteries"; // ;)
 		} else if (escape == "x") {
-			replacement = self.cursor_trace_ent.netname;
-			if (!replacement || !self.cursor_trace_ent)
+			replacement = cursor_ent.netname;
+			if (!replacement || !cursor_ent)
 				replacement = "nothing";
 		} else if (escape == "p") {
 			if (self.last_selected_player)

Modified: trunk/data/qcsrc/server/vehicles/racer.qc
===================================================================
--- trunk/data/qcsrc/server/vehicles/racer.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/vehicles/racer.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -200,6 +200,7 @@
     setorigin(bolt, gettaginfo(self,gettagindex(self,tagname)));
 
     vector v;
+	// FIXME this uses prydon cursor
     v = normalize(self.owner.cursor_trace_endpos - bolt.origin);
     v_forward_z = v_z * 0.5;
     //v_forward_z *= 0.5;
@@ -454,6 +455,7 @@
 
     /*
     // for homing rockets
+	// FIXME this uses prydon cursor
     if(self.owner.cursor_trace_ent)
     {
         self.tur_head.gun1 = self.owner.cursor_trace_ent;

Modified: trunk/data/qcsrc/server/vehicles/spiderbot.qc
===================================================================
--- trunk/data/qcsrc/server/vehicles/spiderbot.qc	2010-02-27 17:38:13 UTC (rev 8677)
+++ trunk/data/qcsrc/server/vehicles/spiderbot.qc	2010-02-27 18:26:56 UTC (rev 8678)
@@ -70,6 +70,7 @@
     self.solid      = SOLID_BBOX;
     self.touch      = spiderbot_rocket_touch;
     olddir = normalize(self.velocity);
+	// FIXME this uses prydon cursor
     //newdir = normalize(self.owner.cursor_trace_endpos - self.origin);
     newdir = normalize(self.pos1 - self.origin);
     newdir += randomvec() * cvar("g_vehicle_spiderbot_rocket_noise");
@@ -129,6 +130,7 @@
     rocket.think           = spiderbot_rocket_think;
     rocket.flags           = FL_PROJECTILE;
     rocket.solid           = SOLID_NOT;
+	// FIXME this uses prydon cursor
     rocket.pos1            = self.owner.cursor_trace_endpos;
 
 	CSQCProjectile(rocket, FALSE, PROJECTILE_ROCKET, FALSE); // no culling, has fly sound



More information about the nexuiz-commits mailing list