void def_move()
{
VECTOR force,speed,dist;
ANGLE aforce,aspeed;
// initialize speed and distance
vec_zero(speed);
vec_zero(aspeed);
vec_zero(dist);
if (1 > def_camera)
def_camera = 1;
if (1 < run_mode && run_mode < 5)
def_camera = 2; // prevent player movement in entity viewer mode
while (def_camera)
{
aforce.tilt = 5*(key_pgup - key_pgdn + mouse_right*mouse_force.y);
if (key_alt==0) {
aforce.pan = -5*(key_force.x + mouse_right*mouse_force.x + joy_force.x);
aforce.roll = 0;
} else {
aforce.pan = 0;
aforce.roll = 5*(key_force.x + mouse_right*mouse_force.x + joy_force.x);
}
vec_add(camera.pan,vec_accelerate(dist,aspeed,aforce,0.8));
force.x = 7*(key_force.y + key_w - key_s + joy_force.y);
force.y = 3*(key_comma - key_period + key_a - key_d);
force.z = 3*(key_home - key_end);
vec_accelerate(dist,speed,force,0.5);