]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/View.qc
Use vec3 and get rid of FL2VEC -- This function didn't exist when I first
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / View.qc
index 2e539c32a29411cf6852444494891bb42707dee5..d58704803a78808625a1795f8f92ad6137fc0dca 100644 (file)
@@ -565,20 +565,17 @@ void CSQC_UpdateView(float w, float h)
        vector ov_worldmax = '0 0 0';
        if(autocvar_cl_orthoview)
        {
-               #define ORTHO_ACCURACY 512 // x^2 resolution accuracy for evaluating fov scaling and distance
-               #define FL2VEC(x,y,z) (('1 0 0' * x) + ('0 1 0' * y) + ('0 0 1' * z))
-
                ov_worldmin = mi_picmin;
                ov_worldmax = mi_picmax;
-               
+
                float ov_width = (ov_worldmax_x - ov_worldmin_x);
                float ov_height = (ov_worldmax_y - ov_worldmin_y);
-               float ov_distance = (ORTHO_ACCURACY * max(ov_width, ov_height));
+               float ov_distance = (autocvar_cl_orthoview_resolution * max(ov_width, ov_height));
 
                ov_mid = ((ov_worldmax + ov_worldmin) * 0.5);
-               ov_org = FL2VEC(ov_mid_x, ov_mid_y, (ov_mid_z + ov_distance));
+               ov_org = vec3(ov_mid_x, ov_mid_y, (ov_mid_z + ov_distance));
 
-               float ov_nearest = vlen(ov_org - FL2VEC(
+               float ov_nearest = vlen(ov_org - vec3(
                        bound(ov_worldmin_x, ov_org_x, ov_worldmax_x),
                        bound(ov_worldmin_y, ov_org_y, ov_worldmax_y),
                        bound(ov_worldmin_z, ov_org_z, ov_worldmax_z)
@@ -587,18 +584,20 @@ void CSQC_UpdateView(float w, float h)
                float ov_furthest = 0;
                float dist = 0;
 
-               if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
-               if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
-               if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
-               if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
-               if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
-               if((dist = vlen(FL2VEC(ov_worldmin_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
-               if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
-               if((dist = vlen(FL2VEC(ov_worldmax_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmin_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmax_x, ov_worldmin_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmin_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmin_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmax_x, ov_worldmax_y, ov_worldmin_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmin_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmax_x, ov_worldmin_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
+               if((dist = vlen(vec3(ov_worldmax_x, ov_worldmax_y, ov_worldmax_z) - ov_org)) > ov_furthest) { ov_furthest = dist; }
 
                cvar_set("r_nearclip", ftos(ov_nearest));
                cvar_set("r_farclip_base", ftos(ov_furthest));
                cvar_set("r_farclip_world", "0");
+               cvar_set("r_novis", "1");
+               cvar_set("r_useportalculling", "0");
                cvar_set("r_useinfinitefarclip", "0");
 
                setproperty(VF_ORIGIN, ov_org);