From bad1464dcfe2a6b65b8f50896d5427e02e62f10c Mon Sep 17 00:00:00 2001 From: Kp Date: Wed, 6 Apr 2016 03:34:14 +0000 Subject: [PATCH] Pass object_base &to physics_turn_towards_vector --- common/main/physics.h | 4 +++- similar/main/physics.cpp | 12 ++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/common/main/physics.h b/common/main/physics.h index d85602756..b25399a8f 100644 --- a/common/main/physics.h +++ b/common/main/physics.h @@ -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 diff --git a/similar/main/physics.cpp b/similar/main/physics.cpp index a18ea2b4b..d07cd56f5 100644 --- a/similar/main/physics.cpp +++ b/similar/main/physics.cpp @@ -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.