[nexuiz-commits] r8718 - in trunk/data/qcsrc: client warpzonelib

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sun Feb 28 14:45:27 EST 2010


Author: div0
Date: 2010-02-28 14:45:18 -0500 (Sun, 28 Feb 2010)
New Revision: 8718

Modified:
   trunk/data/qcsrc/client/Main.qc
   trunk/data/qcsrc/warpzonelib/client.qc
   trunk/data/qcsrc/warpzonelib/client.qh
Log:
hide the glitch when warpzone changes angles by almost nullifying keyboard input

Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc	2010-02-28 19:45:04 UTC (rev 8717)
+++ trunk/data/qcsrc/client/Main.qc	2010-02-28 19:45:18 UTC (rev 8718)
@@ -176,6 +176,8 @@
 	mi_center = (mi_min + mi_max) * 0.5;
 	mi_scale = mi_max - mi_min;
 	minimapname = strzone(minimapname);
+
+	WarpZone_Init();
 }
 
 // CSQC_Shutdown : Called every time the CSQC code is shutdown (changing maps, quitting, etc)
@@ -188,6 +190,8 @@
 #pragma TARGET fte
 #endif
 
+	WarpZone_Shutdown();
+
 	remove(teams);
 	remove(players);
 	db_close(binddb);

Modified: trunk/data/qcsrc/warpzonelib/client.qc
===================================================================
--- trunk/data/qcsrc/warpzonelib/client.qc	2010-02-28 19:45:04 UTC (rev 8717)
+++ trunk/data/qcsrc/warpzonelib/client.qc	2010-02-28 19:45:18 UTC (rev 8718)
@@ -44,10 +44,36 @@
 	setsize(self, self.mins, self.maxs);
 }
 
+float warpzone_fixingview;
+float warpzone_fixingview_drawexteriormodel;
+float warpzone_fixingview_sidespeed;
+float warpzone_fixingview_forwardspeed;
+void WarpZone_Inside()
+{
+	if(warpzone_fixingview)
+		return;
+	warpzone_fixingview = 1;
+	warpzone_fixingview_drawexteriormodel = cvar("r_drawexteriormodel");
+	warpzone_fixingview_sidespeed = cvar("cl_sidespeed");
+	warpzone_fixingview_forwardspeed = cvar("cl_forwardspeed");
+	cvar_set("r_drawexteriormodel", "0");
+	cvar_set("cl_sidespeed", ftos(warpzone_fixingview_sidespeed / 100)); // just keep a bit of it in case player gets stuck
+	cvar_set("cl_forwardspeed", ftos(warpzone_fixingview_forwardspeed / 100)); // just keep a bit of it in case player gets stuck
+}
+
+void WarpZone_Outside()
+{
+	if(!warpzone_fixingview)
+		return;
+	warpzone_fixingview = 0;
+	cvar_set("r_drawexteriormodel", ftos(warpzone_fixingview_drawexteriormodel));
+	cvar_set("cl_sidespeed", ftos(warpzone_fixingview_sidespeed));
+	cvar_set("cl_forwardspeed", ftos(warpzone_fixingview_forwardspeed));
+}
+
 float warpzone_saved;
 vector warpzone_saved_origin;
 vector warpzone_saved_angles;
-float warpzone_fixingview;
 void WarpZone_FixView()
 {
 	float pd;
@@ -62,7 +88,10 @@
 		warpzone_saved = 1;
 		warpzone_fixview_origin = WarpZone_TransformOrigin(e, warpzone_fixview_origin);
 		warpzone_fixview_angles = WarpZone_TransformVAngles(e, warpzone_fixview_angles);
+		WarpZone_Inside();
 	}
+	else
+		WarpZone_Outside();
 
 	// if we are near any warpzone planes - MOVE AWAY (work around nearclip)
 	float nearclip = 2;
@@ -81,20 +110,7 @@
 	{
 		R_SetView(VF_ORIGIN, warpzone_fixview_origin);
 		R_SetView(VF_ANGLES, warpzone_fixview_angles);
-		if(!warpzone_fixingview)
-		{
-			cvar_set("r_drawexteriormodel", "0"); // hide my own model
-			warpzone_fixingview = 1;
-		}
 	}
-	else
-	{
-		if(warpzone_fixingview)
-		{
-			cvar_set("r_drawexteriormodel", "1"); // hide my own model
-			warpzone_fixingview = 0;
-		}
-	}
 }
 void WarpZone_UnFixView()
 {
@@ -106,3 +122,12 @@
 		R_SetView(VF_ANGLES, warpzone_fixview_angles);
 	}
 }
+
+void WarpZone_Init()
+{
+}
+
+void WarpZone_Shutdown()
+{
+	WarpZone_Outside();
+}

Modified: trunk/data/qcsrc/warpzonelib/client.qh
===================================================================
--- trunk/data/qcsrc/warpzonelib/client.qh	2010-02-28 19:45:04 UTC (rev 8717)
+++ trunk/data/qcsrc/warpzonelib/client.qh	2010-02-28 19:45:18 UTC (rev 8718)
@@ -4,3 +4,6 @@
 vector warpzone_fixview_angles;
 void WarpZone_FixView(); // this saves the previous values
 void WarpZone_UnFixView(); // and restores them
+
+void WarpZone_Init();
+void WarpZone_Shutdown();



More information about the nexuiz-commits mailing list