From 2fb0e7702848e194073c4fb750a1cf19776c518a Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 23 Apr 2016 17:59:47 +0000 Subject: [PATCH] Simplify collide_robot_and_controlcen Caller collide_two_objects swaps the inputs to ensure A.type <= B.type. OBJ_ROBOT = 2, OBJ_CNTRLCEN = 9, so A will always be the robot and B will always be the controlcen. Rename the parameters accordingly. Add assert statements to check this. --- similar/main/collide.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/similar/main/collide.cpp b/similar/main/collide.cpp index d9d28cadc..797520171 100644 --- a/similar/main/collide.cpp +++ b/similar/main/collide.cpp @@ -963,13 +963,12 @@ static void collide_robot_and_robot(const vobjptridx_t robot1, const vobjptridx_ return; } -static void collide_robot_and_controlcen(vobjptr_t obj1, vobjptr_t obj2, const vms_vector &) +static void collide_robot_and_controlcen(vobjptr_t obj_robot, vobjptr_t obj_cc, const vms_vector &) { - if (obj1->type == OBJ_ROBOT) { - std::swap(obj1, obj2); - } - const auto hitvec = vm_vec_normalized(vm_vec_sub(obj1->pos, obj2->pos)); - bump_one_object(obj2, hitvec, 0); + assert(obj_cc->type == OBJ_CNTRLCEN); + assert(obj_robot->type == OBJ_ROBOT); + const auto &&hitvec = vm_vec_normalized(vm_vec_sub(obj_cc->pos, obj_robot->pos)); + bump_one_object(obj_robot, hitvec, 0); } static void collide_robot_and_player(const vobjptridx_t robot, const vobjptridx_t playerobj, const vms_vector &collision_point)