From f671e6781d3076b59a27fd89c37c5ee3cb917fcf Mon Sep 17 00:00:00 2001 From: Kp Date: Sun, 24 Jul 2016 04:04:25 +0000 Subject: [PATCH] Narrow scope of random vectors --- similar/main/ai.cpp | 9 +++------ similar/main/cntrlcen.cpp | 3 +-- similar/main/collide.cpp | 10 +++------- similar/main/game.cpp | 4 +--- similar/main/laser.cpp | 9 +++------ 5 files changed, 11 insertions(+), 24 deletions(-) diff --git a/similar/main/ai.cpp b/similar/main/ai.cpp index d43ee8276..70e7d8d0b 100644 --- a/similar/main/ai.cpp +++ b/similar/main/ai.cpp @@ -630,8 +630,7 @@ void ai_turn_towards_vector(const vms_vector &goal_vector, object_base &objp, fi if (Seismic_tremor_magnitude) { fix scale; scale = fixdiv(2*Seismic_tremor_magnitude, Robot_info[get_robot_id(objp)].mass); - const auto &&rand_vec = make_random_vector(); - vm_vec_scale_add2(new_fvec, rand_vec, scale); + vm_vec_scale_add2(new_fvec, make_random_vector(), scale); } vm_vector_2_matrix(objp.orient, new_fvec, nullptr, &objp.orient.rvec); @@ -1618,8 +1617,7 @@ static void compute_vis_and_vec(const vobjptridx_t objp, vms_vector &pos, ai_loc delta_time = GameTime64 - Ai_cloak_info[cloak_index].last_time; if (delta_time > F1_0*2) { Ai_cloak_info[cloak_index].last_time = GameTime64; - const auto randvec = make_random_vector(); - vm_vec_scale_add2(Ai_cloak_info[cloak_index].last_position, randvec, 8*delta_time ); + vm_vec_scale_add2(Ai_cloak_info[cloak_index].last_position, make_random_vector(), 8 * delta_time); } auto dist = vm_vec_normalized_dir_quick(vec_to_player, Ai_cloak_info[cloak_index].last_position, pos); @@ -3753,8 +3751,7 @@ _exit_cheat: vm_vec_scale(goal_vector, 2*(ConsoleObject->size + obj->size + (((objnum*4 + d_tick_count) & 63) << 12))); auto goal_point = vm_vec_add(ConsoleObject->pos, goal_vector); - const auto rand_vec = make_random_vector(); - vm_vec_scale_add2(goal_point, rand_vec, F1_0*8); + vm_vec_scale_add2(goal_point, make_random_vector(), F1_0*8); const auto vec_to_goal = vm_vec_normalized_quick(vm_vec_sub(goal_point, obj->pos)); move_towards_vector(obj, vec_to_goal, 0); ai_turn_towards_vector(vec_to_player, obj, robptr->turn_time[Difficulty_level]); diff --git a/similar/main/cntrlcen.cpp b/similar/main/cntrlcen.cpp index 8db05e94e..3b8cb1973 100644 --- a/similar/main/cntrlcen.cpp +++ b/similar/main/cntrlcen.cpp @@ -416,8 +416,7 @@ void do_controlcen_frame(const vobjptridx_t obj) while ((d_rand() > rand_prob) && (count < 4)) #endif { - const auto randvec = make_random_vector(); - vm_vec_scale_add2(vec_to_goal, randvec, F1_0/scale_divisor); + vm_vec_scale_add2(vec_to_goal, make_random_vector(), F1_0/scale_divisor); vm_vec_normalize_quick(vec_to_goal); if (Game_mode & GM_MULTI) multi_send_controlcen_fire(vec_to_goal, best_gun_num, obj); diff --git a/similar/main/collide.cpp b/similar/main/collide.cpp index 36099e9d8..f934b87d7 100644 --- a/similar/main/collide.cpp +++ b/similar/main/collide.cpp @@ -430,8 +430,7 @@ void scrape_player_on_wall(const vobjptridx_t obj, const vsegptridx_t hitseg, sh multi_digi_link_sound_to_pos(SOUND_VOLATILE_WALL_HISS,hitseg, 0, hitpt, 0, F1_0); } hit_dir = hitseg->sides[hitside].normals[0]; - const auto rand_vec = make_random_vector(); - vm_vec_scale_add2(hit_dir, rand_vec, F1_0/8); + vm_vec_scale_add2(hit_dir, make_random_vector(), F1_0/8); vm_vec_normalize_quick(hit_dir); bump_one_object(obj, hit_dir, F1_0*8); @@ -487,18 +486,15 @@ void scrape_player_on_wall(const vobjptridx_t obj, const vsegptridx_t hitseg, sh const auto type = check_volatile_wall(obj, hitseg, hitside); if (type != volatile_wall_result::none) { - vms_vector hit_dir; - if ((GameTime64 > Last_volatile_scrape_sound_time + F1_0/4) || (GameTime64 < Last_volatile_scrape_sound_time)) { Last_volatile_scrape_sound_time = GameTime64; const auto sound = (type == volatile_wall_result::lava) ? SOUND_VOLATILE_WALL_HISS : SOUND_SHIP_IN_WATER; multi_digi_link_sound_to_pos(sound, hitseg, 0, hitpt, 0, F1_0); } - hit_dir = hitseg->sides[hitside].normals[0]; + auto hit_dir = hitseg->sides[hitside].normals[0]; - const auto rand_vec = make_random_vector(); - vm_vec_scale_add2(hit_dir, rand_vec, F1_0/8); + vm_vec_scale_add2(hit_dir, make_random_vector(), F1_0/8); vm_vec_normalize_quick(hit_dir); bump_one_object(obj, hit_dir, F1_0*8); } diff --git a/similar/main/game.cpp b/similar/main/game.cpp index 11ba4db85..106e5bcef 100644 --- a/similar/main/game.cpp +++ b/similar/main/game.cpp @@ -1519,10 +1519,8 @@ void GameProcessFrame(void) rotvel.x += rx; rotvel.z += rz; - const auto rand_vec = make_random_vector(); - const auto bump_amount = Fusion_charge > F1_0*2 ? Fusion_charge*4 : F1_0*4; - bump_one_object(console, rand_vec, bump_amount); + bump_one_object(console, make_random_vector(), bump_amount); } } diff --git a/similar/main/laser.cpp b/similar/main/laser.cpp index d9cf03dc9..706c1acc0 100644 --- a/similar/main/laser.cpp +++ b/similar/main/laser.cpp @@ -448,8 +448,7 @@ static void create_omega_blobs(const segptridx_t firing_segnum, const vms_vector // Every so often, re-perturb blobs if ((i % 4) == 3) { - const auto temp_vec = make_random_vector(); - vm_vec_scale_add2(perturb_vec, temp_vec, F1_0/4); + vm_vec_scale_add2(perturb_vec, make_random_vector(), F1_0/4); } const auto temp_pos = vm_vec_scale_add(blob_pos, perturb_vec, perturb_array[i]); @@ -606,8 +605,7 @@ static void do_omega_stuff(const vobjptridx_t parent_objp, const vms_vector &fir fvi_query fq; fvi_info hit_data; int fate; - const auto perturb_vec = make_random_vector(); - const auto perturbed_fvec = vm_vec_scale_add(parent_objp->orient.fvec, perturb_vec, F1_0/16); + const auto &&perturbed_fvec = vm_vec_scale_add(parent_objp->orient.fvec, make_random_vector(), F1_0/16); vm_vec_scale_add(goal_pos, firing_pos, perturbed_fvec, MAX_OMEGA_DIST); fq.startseg = firing_segnum; if (fq.startseg == segment_none) { @@ -2062,8 +2060,7 @@ static objptridx_t create_homing_missile(const vobjptridx_t objp, const objptrid make_random_vector(vector_to_goal); } else { vm_vec_normalized_dir_quick(vector_to_goal, goal_obj->pos, objp->pos); - const auto random_vector = make_random_vector(); - vm_vec_scale_add2(vector_to_goal, random_vector, F1_0/4); + vm_vec_scale_add2(vector_to_goal, make_random_vector(), F1_0/4); vm_vec_normalize_quick(vector_to_goal); }