[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