X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=view.c;h=4839e64ef1357a55e054ad29fbc5a9108160c907;hp=6d969d0d772eea387ac29a72a8a90ff16b803321;hb=ed67cc8325ba6c8cbdd36f2271703b3814b57940;hpb=b91033966317d4d6a2a6bdf2952291fc88e3f7c4 diff --git a/view.c b/view.c index 6d969d0d..4839e64e 100644 --- a/view.c +++ b/view.c @@ -76,10 +76,8 @@ 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; if (side < cl_rollspeed.value) side = side * value / cl_rollspeed.value; @@ -97,6 +95,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; @@ -110,7 +110,6 @@ static float V_CalcBob (void) // (don't count Z, or jumping messes it up) bob = sqrt(cl.velocity[0]*cl.velocity[0] + cl.velocity[1]*cl.velocity[1]) * cl_bob.value; - //Con_Printf ("speed: %5.1f\n", Length(cl.velocity)); bob = bob*0.3 + bob*0.7*sin(cycle); bob = bound(-7, bob, 4); return bob; @@ -119,12 +118,9 @@ static float V_CalcBob (void) void V_StartPitchDrift (void) { -#if 1 if (cl.laststop == cl.time) - { return; // something else is keeping it from drifting - } -#endif + if (cl.nodrift || !cl.pitchvel) { cl.pitchvel = v_centerspeed.value; @@ -190,8 +186,6 @@ static void V_DriftPitch (void) move = cl.frametime * cl.pitchvel; cl.pitchvel += cl.frametime * v_centerspeed.value; -//Con_Printf ("move: %f (%f)\n", move, cl.frametime); - if (delta > 0) { if (move > delta) @@ -213,9 +207,6 @@ static void V_DriftPitch (void) } - - - /* ============================================================================== @@ -370,19 +361,19 @@ void V_UpdateBlends (void) cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 255; cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = 80; cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = 0; - cl.cshifts[CSHIFT_CONTENTS].percent = 150; + cl.cshifts[CSHIFT_CONTENTS].percent = 150 >> 1; break; case CONTENTS_SLIME: cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 0; cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = 25; cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = 5; - cl.cshifts[CSHIFT_CONTENTS].percent = 150; + cl.cshifts[CSHIFT_CONTENTS].percent = 150 >> 1; break; default: cl.cshifts[CSHIFT_CONTENTS].destcolor[0] = 130; cl.cshifts[CSHIFT_CONTENTS].destcolor[1] = 80; cl.cshifts[CSHIFT_CONTENTS].destcolor[2] = 50; - cl.cshifts[CSHIFT_CONTENTS].percent = 128; + cl.cshifts[CSHIFT_CONTENTS].percent = 128 >> 1; } if (cl.items & IT_QUAD) @@ -487,6 +478,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 +488,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 +535,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 +547,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) @@ -601,4 +598,3 @@ void V_Init (void) Cvar_RegisterVariable (&v_kickpitch); } -