]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - view.c
reenabled loading plaques (and cleaned up that code a lot)
[xonotic/darkplaces.git] / view.c
diff --git a/view.c b/view.c
index 6d969d0d772eea387ac29a72a8a90ff16b803321..a74b72087a11bc0b1e43caa2e507415c624457fc 100644 (file)
--- a/view.c
+++ b/view.c
@@ -76,7 +76,7 @@ float V_CalcRoll (vec3_t angles, vec3_t velocity)
        side = DotProduct (velocity, right);
        sign = side < 0 ? -1 : 1;
        side = fabs(side);
-       
+
        value = cl_rollangle.value;
 //     if (cl.inwater)
 //             value *= 6;
@@ -97,6 +97,8 @@ static float V_CalcBob (void)
        // LordHavoc: easy case
        if (cl_bob.value == 0)
                return 0;
+       if (cl_bobcycle.value == 0)
+               return 0;
 
        // LordHavoc: FIXME: this code is *weird*, redesign it sometime
        cycle = cl.time  / cl_bobcycle.value;
@@ -487,6 +489,9 @@ void V_CalcRefdef (void)
        float           bob;
        float           side;
 
+       if (cls.state != ca_connected || !cl.worldmodel)
+               return;
+
        // ent is the player model (visible when out of body)
        ent = &cl_entities[cl.viewentity];
        // view is the weapon model (only visible from inside body)
@@ -494,17 +499,19 @@ void V_CalcRefdef (void)
 
        V_DriftPitch ();
 
-       VectorCopy (ent->render.origin, r_refdef.vieworg);
+       VectorCopy (cl.viewentorigin, r_refdef.vieworg);
        if (!intimerefresh)
                VectorCopy (cl.viewangles, r_refdef.viewangles);
 
        if (cl.intermission)
        {
                view->render.model = NULL;
+               VectorCopy (ent->render.angles, r_refdef.viewangles);
                V_AddIdle (1);
        }
        else if (chase_active.value)
        {
+               r_refdef.vieworg[2] += cl.viewheight;
                Chase_Update ();
                V_AddIdle (v_idlescale.value);
        }
@@ -539,9 +546,10 @@ void V_CalcRefdef (void)
                // set up gun
                view->state_current.modelindex = cl.stats[STAT_WEAPON];
                view->state_current.frame = cl.stats[STAT_WEAPONFRAME];
-               view->render.origin[0] = ent->render.origin[0] + bob * 0.4 * forward[0];
-               view->render.origin[1] = ent->render.origin[1] + bob * 0.4 * forward[1];
-               view->render.origin[2] = ent->render.origin[2] + bob * 0.4 * forward[2] + cl.viewheight + bob;
+               VectorCopy(r_refdef.vieworg, view->render.origin);
+               //view->render.origin[0] = ent->render.origin[0] + bob * 0.4 * forward[0];
+               //view->render.origin[1] = ent->render.origin[1] + bob * 0.4 * forward[1];
+               //view->render.origin[2] = ent->render.origin[2] + bob * 0.4 * forward[2] + cl.viewheight + bob;
                view->render.angles[PITCH] = -r_refdef.viewangles[PITCH] - v_idlescale.value * sin(cl.time*v_iyaw_cycle.value) * v_iyaw_level.value;
                view->render.angles[YAW] = r_refdef.viewangles[YAW] - v_idlescale.value * sin(cl.time*v_ipitch_cycle.value) * v_ipitch_level.value;
                view->render.angles[ROLL] = r_refdef.viewangles[ROLL] - v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value;
@@ -550,7 +558,7 @@ void V_CalcRefdef (void)
                view->render.colormap = -1; // no special coloring
                view->render.alpha = ent->render.alpha; // LordHavoc: if the player is transparent, so is the gun
                view->render.effects = ent->render.effects;
-               view->render.scale = 1;
+               view->render.scale = 1.0 / 3.0;
 
                // LordHavoc: origin view kick added
                if (!intimerefresh)