v_mad(view.e[2], view.e[2], view_v, v_dot(view_v, view_v) * dt / 4);
break;
+
+ case VIEW_SPEED: /* View vector chases the ball position, height depends
+ on speed. */
+
+ v_sub(view.e[2], view.p, view.c);
+
+ break;
+
}
/* Apply manual rotation. */
/* Compute the new view position. */
k = 1.0f + v_dot(view.e[2], view_v) / 10.0f;
+ if (input_get_c() == VIEW_SPEED)
+ {
+ float speed_adj = v_dot(vary.uv->v, vary.uv->v) / 10.0;
+ if (speed_adj > 5.0)
+ speed_adj = 5.0;
+ k += speed_adj;
+ }
view_k = view_k + (k - view_k) * dt;