Pass object_base &to physics_turn_towards_vector

This commit is contained in:
Kp 2016-04-06 03:34:14 +00:00
parent 6a1e1670cc
commit bad1464dcf
2 changed files with 9 additions and 7 deletions

View file

@ -59,7 +59,9 @@ void phys_apply_rot(vobjptr_t obj, const vms_vector &force_vec);
// (hopefully) maintain the object's current velocity
void set_thrust_from_velocity(vobjptr_t obj);
void check_and_fix_matrix(vms_matrix &m);
void physics_turn_towards_vector(const vms_vector &goal_vector, vobjptr_t obj, fix rate);
namespace dcx {
void physics_turn_towards_vector(const vms_vector &goal_vector, object_base &obj, fix rate);
}
#endif
#endif

View file

@ -778,8 +778,6 @@ void phys_apply_force(object_base &obj, const vms_vector &force_vec)
vm_vec_scale_add2(obj.mtype.phys_info.velocity, force_vec, fixdiv(f1_0, obj.mtype.phys_info.mass));
}
}
// ----------------------------------------------------------------
// Do *dest = *delta unless:
// *delta is pretty small
@ -805,7 +803,7 @@ static inline vms_angvec vm_extract_angles_vector(const vms_vector &v)
// ------------------------------------------------------------------------------------------------------
// Note: This is the old ai_turn_towards_vector code.
// phys_apply_rot used to call ai_turn_towards_vector until I fixed it, which broke phys_apply_rot.
void physics_turn_towards_vector(const vms_vector &goal_vector, const vobjptr_t obj, fix rate)
void physics_turn_towards_vector(const vms_vector &goal_vector, object_base &obj, fix rate)
{
fix delta_p, delta_h;
@ -817,11 +815,11 @@ void physics_turn_towards_vector(const vms_vector &goal_vector, const vobjptr_t
return;
// Make morph objects turn more slowly.
if (obj->control_type == CT_MORPH)
if (obj.control_type == CT_MORPH)
rate *= 2;
const auto dest_angles = vm_extract_angles_vector(goal_vector);
const auto cur_angles = vm_extract_angles_vector(obj->orient.fvec);
const auto cur_angles = vm_extract_angles_vector(obj.orient.fvec);
delta_p = (dest_angles.p - cur_angles.p);
delta_h = (dest_angles.h - cur_angles.h);
@ -837,12 +835,14 @@ void physics_turn_towards_vector(const vms_vector &goal_vector, const vobjptr_t
if (abs(delta_p) < F1_0/16) delta_p *= 4;
if (abs(delta_h) < F1_0/16) delta_h *= 4;
auto &rotvel_ptr = obj->mtype.phys_info.rotvel;
auto &rotvel_ptr = obj.mtype.phys_info.rotvel;
physics_set_rotvel_and_saturate(rotvel_ptr.x, delta_p);
physics_set_rotvel_and_saturate(rotvel_ptr.y, delta_h);
rotvel_ptr.z = 0;
}
}
// -----------------------------------------------------------------------------
// Applies an instantaneous whack on an object, resulting in an instantaneous
// change in orientation.