]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - clvm_cmds.c
fix issues with V_CalcRefdef in CSQC and stereo view
[xonotic/darkplaces.git] / clvm_cmds.c
index 7975bf1e9e8c451295c6c81511123b71bb617789..dc69e294b9c10d73547572a9f693e0cc4cf20da9 100644 (file)
@@ -1490,7 +1490,7 @@ static void VM_CL_runplayerphysics (prvm_prog_t *prog)
        s.cmd.jump = (s.cmd.buttons & 2) != 0;
        s.cmd.crouch = (s.cmd.buttons & 16) != 0;
 
-       CL_ClientMovement_PlayerMove(&s);
+       CL_ClientMovement_PlayerMove_Frame(&s);
 
        if(ent == prog->edicts)
        {
@@ -4150,13 +4150,18 @@ static void VM_CL_loadcubemap(prvm_prog_t *prog)
 
 #define REFDEFFLAG_TELEPORTED 1
 #define REFDEFFLAG_JUMPING 2
+#define REFDEFFLAG_DEAD 4
+#define REFDEFFLAG_INTERMISSION 8
 static void VM_CL_V_CalcRefdef(prvm_prog_t *prog)
 {
        matrix4x4_t entrendermatrix;
        vec3_t clviewangles;
+       vec3_t clvelocity;
        qboolean teleported;
        qboolean clonground;
        qboolean clcmdjump;
+       qboolean cldead;
+       qboolean clintermission;
        float clstatsviewheight;
        prvm_edict_t *ent;
        int flags;
@@ -4173,8 +4178,11 @@ static void VM_CL_V_CalcRefdef(prvm_prog_t *prog)
        clonground = ((int)PRVM_clientedictfloat(ent, pmove_flags) & PMF_ONGROUND) != 0;
        clcmdjump = (flags & REFDEFFLAG_JUMPING) != 0;
        clstatsviewheight = PRVM_clientedictvector(ent, view_ofs)[2];
+       cldead = (flags & REFDEFFLAG_DEAD) != 0;
+       clintermission = (flags & REFDEFFLAG_INTERMISSION) != 0;
+       VectorCopy(PRVM_clientedictvector(ent, velocity), clvelocity);
 
-       V_CalcRefdefUsing(&entrendermatrix, clviewangles, teleported, clonground, clcmdjump, clstatsviewheight);
+       V_CalcRefdefUsing(&entrendermatrix, clviewangles, teleported, clonground, clcmdjump, clstatsviewheight, cldead, clintermission, clvelocity);
 
        VectorCopy(cl.csqc_vieworiginfromengine, cl.csqc_vieworigin);
        VectorCopy(cl.csqc_viewanglesfromengine, cl.csqc_viewangles);