]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/warpzonelib/client.qc
Merge branch 'master' into samual/weapons
[xonotic/xonotic-data.pk3dir.git] / qcsrc / warpzonelib / client.qc
index a44b3797451b73453fcbe482546827c2d071d0e6..c2a110b4a14dd829fdc06618e6c669653e29074f 100644 (file)
@@ -1,14 +1,19 @@
 void WarpZone_Fade_PreDraw()
 {
-       if(self.warpzone_fadestart)
-       {
-               vector org;
-               org = getpropertyvec(VF_ORIGIN);
+       vector org;
+       org = getpropertyvec(VF_ORIGIN);
+       if(
+#ifdef COMPAT_XON060_DONTCRASH_CHECKPVS
+               cvar_string("g_xonoticversion") != "0.5.0" &&
+               cvar_string("g_xonoticversion") != "0.6.0" &&
+#endif
+               !checkpvs(org, self)) // this makes sense as long as we don't support recursive warpzones
+               self.alpha = 0;
+       else if(self.warpzone_fadestart)
                self.alpha = bound(0, (self.warpzone_fadeend - vlen(org - self.origin - 0.5 * (self.mins + self.maxs))) / (self.warpzone_fadeend - self.warpzone_fadestart), 1);
-       }
        else
                self.alpha = 1;
-       //print(sprintf("%v <-> %v\n", view_origin, self.origin + 0.5 * (self.mins + self.maxs)));
+       //printf("%v <-> %v\n", view_origin, self.origin + 0.5 * (self.mins + self.maxs));
        if(self.alpha <= 0)
                self.drawmask = 0;
        else
@@ -20,7 +25,7 @@ void WarpZone_Read(float isnew)
        float f;
 
        warpzone_warpzones_exist = 1;
-       if not(self.enemy)
+       if (!self.enemy)
        {
                self.enemy = spawn();
                self.enemy.classname = "warpzone_from";
@@ -79,10 +84,7 @@ void WarpZone_Read(float isnew)
 
        // how to draw
        // engine currently wants this
-       if(self.warpzone_fadestart)
-               self.predraw = WarpZone_Fade_PreDraw;
-       else
-               self.drawmask = MASK_NORMAL;
+       self.predraw = WarpZone_Fade_PreDraw;
 }
 
 void WarpZone_Camera_Read(float isnew)
@@ -139,10 +141,7 @@ void WarpZone_Camera_Read(float isnew)
 
        // how to draw
        // engine currently wants this
-       if(self.warpzone_fadestart)
-               self.predraw = WarpZone_Fade_PreDraw;
-       else
-               self.drawmask = MASK_NORMAL;
+       self.predraw = WarpZone_Fade_PreDraw;
 }
 
 void CL_RotateMoves(vector ang) = #638;
@@ -240,8 +239,8 @@ void WarpZone_FixView()
        vector org, ang, nearclip, corner0, corner1, corner2, corner3, o;
        float f;
 
-       org = getpropertyvec(VF_ORIGIN);
-       ang = getpropertyvec(VF_ANGLES);
+       warpzone_save_view_origin = org = getpropertyvec(VF_ORIGIN);
+       warpzone_save_view_angles = ang = getpropertyvec(VF_ANGLES);
 #ifdef WORKAROUND_XON010
        float dirty;
        dirty = checkextension("DP_CSQC_ROTATEMOVES");