Pass physics_set_rotvel_and_saturate arg by &

This commit is contained in:
Kp 2014-12-22 04:35:49 +00:00
parent 702ea40ade
commit 102c3c057f

View file

@ -793,15 +793,15 @@ void phys_apply_force(const vobjptr_t obj,const vms_vector &force_vec)
// Do *dest = *delta unless:
// *delta is pretty small
// and they are of different signs.
static void physics_set_rotvel_and_saturate(fix *dest, fix delta)
static void physics_set_rotvel_and_saturate(fix &dest, fix delta)
{
if ((delta ^ *dest) < 0) {
if ((delta ^ dest) < 0) {
if (abs(delta) < F1_0/8) {
*dest = delta/4;
dest = delta/4;
} else
*dest = delta;
dest = delta;
} else {
*dest = delta;
dest = delta;
}
}
@ -847,26 +847,8 @@ void physics_turn_towards_vector(const vms_vector &goal_vector, const vobjptr_t
if (abs(delta_h) < F1_0/16) delta_h *= 4;
auto &rotvel_ptr = obj->mtype.phys_info.rotvel;
#ifdef WORDS_NEED_ALIGNMENT
if ((delta_p ^ rotvel_ptr.x) < 0) {
if (abs(delta_p) < F1_0/8)
rotvel_ptr.x = delta_p/4;
else
rotvel_ptr.x = delta_p;
} else
rotvel_ptr.x = delta_p;
if ((delta_h ^ rotvel_ptr.y) < 0) {
if (abs(delta_h) < F1_0/8)
rotvel_ptr.y = delta_h/4;
else
rotvel_ptr.y = delta_h;
} else
rotvel_ptr.y = delta_h;
#else
physics_set_rotvel_and_saturate(&rotvel_ptr.x, delta_p);
physics_set_rotvel_and_saturate(&rotvel_ptr.y, delta_h);
#endif
physics_set_rotvel_and_saturate(rotvel_ptr.x, delta_p);
physics_set_rotvel_and_saturate(rotvel_ptr.y, delta_h);
rotvel_ptr.z = 0;
}