[nexuiz-commits] r7453 - trunk/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Mon Aug 17 08:08:30 EDT 2009


Author: mand1nga
Date: 2009-08-17 08:08:30 -0400 (Mon, 17 Aug 2009)
New Revision: 7453

Modified:
   trunk/data/qcsrc/server/havocbot.qc
Log:
Better landing

Modified: trunk/data/qcsrc/server/havocbot.qc
===================================================================
--- trunk/data/qcsrc/server/havocbot.qc	2009-08-16 19:22:40 UTC (rev 7452)
+++ trunk/data/qcsrc/server/havocbot.qc	2009-08-17 12:08:30 UTC (rev 7453)
@@ -334,14 +334,20 @@
 		// Landing
 		if(self.aistatus & AI_STATUS_JETPACK_LANDING)
 		{
-			// TODO: more accurate landing (with optimum fuel usage)
-			vector p = self.origin - self.goalcurrent.origin; p_z = 0;
-			if( vlen(p) < max(cvar("g_jetpack_maxspeed_side"), vlen(self.velocity)))
+			// Calculate brake distance in xy
+			float db, v, d;
+			vector dxy;
+
+			dxy = self.origin - self.goalcurrent.origin; dxy_z = 0;
+			d = vlen(dxy);
+			v = vlen(self.velocity -  self.velocity_z * '0 0 1');
+			db = (pow(v,2) / (cvar("g_jetpack_acceleration_side") * 2)) + 100;
+		//	dprint("distance ", ftos(ceil(d)), " velocity ", ftos(ceil(v)), " brake at ", ftos(ceil(db)), "\n");
+			if(d < db || d < 500)
 			{
 				// Brake
-				if(fabs(self.velocity_x)>maxspeed)
+				if(fabs(self.velocity_x)>maxspeed*0.3)
 				{
-					self.BUTTON_HOOK = TRUE;
 					self.movement_x = dir * v_forward * -maxspeed;
 					return;
 				}



More information about the nexuiz-commits mailing list