]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - view.c
sound direction fix (negated yaw angle), submitted by div0
[xonotic/darkplaces.git] / view.c
diff --git a/view.c b/view.c
index 60da3e3dfdf007f4bdf4d4c732300c5637b68ca0..6f202b1039cc712e9d75d868e44c67676c79c83c 100644 (file)
--- a/view.c
+++ b/view.c
@@ -308,6 +308,7 @@ static void V_BonusFlash_f (void)
 extern matrix4x4_t viewmodelmatrix;
 
 #include "cl_collision.h"
+#include "csprogs.h"
 
 /*
 ==================
@@ -321,6 +322,8 @@ void V_CalcRefdef (void)
        entity_t *ent;
        float vieworg[3], gunorg[3], viewangles[3];
        trace_t trace;
+       if(csqc_loaded)
+               return;
        VectorClear(gunorg);
        Matrix4x4_CreateIdentity(&viewmodelmatrix);
        Matrix4x4_CreateIdentity(&r_refdef.viewentitymatrix);
@@ -490,6 +493,8 @@ void V_CalcRefdef (void)
                                Matrix4x4_CreateFromQuakeEntity(&r_refdef.viewentitymatrix, vieworg[0], vieworg[1], vieworg[2], viewangles[0], viewangles[1], viewangles[2] + v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value, 1);
                        // calculate a viewmodel matrix for use in view-attached entities
                        Matrix4x4_CreateFromQuakeEntity(&viewmodelmatrix, gunorg[0], gunorg[1], gunorg[2], viewangles[0], viewangles[1], viewangles[2], 0.3);
+                       VectorCopy(vieworg, csqc_origin);
+                       VectorCopy(viewangles, csqc_angles);
                }
        }
 }
@@ -514,8 +519,8 @@ void V_CalcViewBlend(void)
        r_refdef.viewblend[1] = 0;
        r_refdef.viewblend[2] = 0;
        r_refdef.viewblend[3] = 0;
-       r_refdef.fovscale_x = cl.viewzoom;
-       r_refdef.fovscale_y = cl.viewzoom;
+       r_refdef.frustumscale_x = 1;
+       r_refdef.frustumscale_y = 1;
        if (cls.state == ca_connected && cls.signon == SIGNONS && gl_polyblend.value > 0)
        {
                // set contents color
@@ -525,8 +530,8 @@ void V_CalcViewBlend(void)
                supercontents = CL_PointSuperContents(vieworigin);
                if (supercontents & SUPERCONTENTS_LIQUIDSMASK)
                {
-                       r_refdef.fovscale_x *= 1 - (((sin(cl.time * 4.7) + 1) * 0.015) * r_waterwarp.value);
-                       r_refdef.fovscale_y *= 1 - (((sin(cl.time * 3.0) + 1) * 0.015) * r_waterwarp.value);
+                       r_refdef.frustumscale_x *= 1 - (((sin(cl.time * 4.7) + 1) * 0.015) * r_waterwarp.value);
+                       r_refdef.frustumscale_y *= 1 - (((sin(cl.time * 3.0) + 1) * 0.015) * r_waterwarp.value);
                        if (supercontents & SUPERCONTENTS_LAVA)
                        {
                                cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 255;