[nexuiz-commits] r8725 - in trunk/data: qcsrc/warpzonelib scripts

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sun Feb 28 14:46:06 EST 2010


Author: div0
Date: 2010-02-28 14:46:06 -0500 (Sun, 28 Feb 2010)
New Revision: 8725

Modified:
   trunk/data/qcsrc/warpzonelib/client.qc
   trunk/data/qcsrc/warpzonelib/common.qc
   trunk/data/qcsrc/warpzonelib/common.qh
   trunk/data/qcsrc/warpzonelib/server.qc
   trunk/data/scripts/common.shader
Log:
optional better warpzone culling: cl_warpzone_usetrace

Modified: trunk/data/qcsrc/warpzonelib/client.qc
===================================================================
--- trunk/data/qcsrc/warpzonelib/client.qc	2010-02-28 19:46:01 UTC (rev 8724)
+++ trunk/data/qcsrc/warpzonelib/client.qc	2010-02-28 19:46:06 UTC (rev 8725)
@@ -34,8 +34,6 @@
 
 	// engine currently wants this
 	self.avelocity = AnglesTransform_TurnDirectionFR(self.avelocity);
-
-	self.flags = FL_CAMERA;
 	self.drawmask = MASK_NORMAL;
 
 	// link me

Modified: trunk/data/qcsrc/warpzonelib/common.qc
===================================================================
--- trunk/data/qcsrc/warpzonelib/common.qc	2010-02-28 19:46:01 UTC (rev 8724)
+++ trunk/data/qcsrc/warpzonelib/common.qc	2010-02-28 19:46:06 UTC (rev 8725)
@@ -20,6 +20,28 @@
 	acc.warpzone_shift = st;
 }
 
+.vector(vector, vector) camera_transform;
+var float autocvar_cl_warpzone_usetrace = 1;
+vector WarpZone_camera_transform(vector org, vector ang)
+{
+	vector vf, vr, vu;
+	vf = v_forward;
+	vr = v_right;
+	vu = v_up;
+	org = WarpZone_TransformOrigin(self, org);
+	vf = WarpZone_TransformVelocity(self, vf);
+	vr = WarpZone_TransformVelocity(self, vr);
+	vu = WarpZone_TransformVelocity(self, vu);
+	if(autocvar_cl_warpzone_usetrace)
+		traceline(self.warpzone_targetorigin, org, MOVE_NOMONSTERS, world);
+	else
+		trace_endpos = self.warpzone_targetorigin;
+	v_forward = vf;
+	v_right = vr;
+	v_up = vu;
+	return org;
+}
+
 void WarpZone_SetUp(entity e, vector my_org, vector my_ang, vector other_org, vector other_ang)
 {
 	e.warpzone_transform = AnglesTransform_Divide(other_ang, AnglesTransform_TurnDirectionFR(my_ang));
@@ -30,6 +52,7 @@
 	e.warpzone_targetangles = other_ang;
 	fixedmakevectors(my_ang); e.warpzone_forward = v_forward;
 	fixedmakevectors(other_ang); e.warpzone_targetforward = v_forward;
+	e.camera_transform = WarpZone_camera_transform;
 }
 
 .entity enemy;

Modified: trunk/data/qcsrc/warpzonelib/common.qh
===================================================================
--- trunk/data/qcsrc/warpzonelib/common.qh	2010-02-28 19:46:01 UTC (rev 8724)
+++ trunk/data/qcsrc/warpzonelib/common.qh	2010-02-28 19:46:06 UTC (rev 8725)
@@ -13,8 +13,6 @@
 .vector warpzone_transform;
 void WarpZone_SetUp(entity e, vector my_org, vector my_ang, vector other_org, vector other_ang);
 
-float FL_CAMERA = 8192;
-
 float WarpZoneLib_BoxTouchesBrush(vector mi, vector ma, entity e, entity ig);
 vector WarpZoneLib_NearestPointOnBox(vector mi, vector ma, vector org);
 

Modified: trunk/data/qcsrc/warpzonelib/server.qc
===================================================================
--- trunk/data/qcsrc/warpzonelib/server.qc	2010-02-28 19:46:01 UTC (rev 8724)
+++ trunk/data/qcsrc/warpzonelib/server.qc	2010-02-28 19:46:06 UTC (rev 8725)
@@ -219,10 +219,6 @@
 
 	// now enable touch
 	self.touch = WarpZone_Touch;
-
-	// our mins/maxs are set to the warpzone... so all we need:
-	self.flags |= FL_CAMERA;
-	self.view_ofs = self.warpzone_targetorigin;
 }
 
 float WarpZone_CheckProjectileImpact()

Modified: trunk/data/scripts/common.shader
===================================================================
--- trunk/data/scripts/common.shader	2010-02-28 19:46:01 UTC (rev 8724)
+++ trunk/data/scripts/common.shader	2010-02-28 19:46:06 UTC (rev 8725)
@@ -359,5 +359,6 @@
 		map textures/common/mirror1.tga // fully transparent
 		blendfunc blend
 	}
-	dp_refract 1 1 1 1
+	dp_camera
+	dp_refract 1 1 1 1 // makes the camera render like a refraction
 }



More information about the nexuiz-commits mailing list