Narrow scope of random vectors
This commit is contained in:
parent
8a46462846
commit
f671e6781d
|
@ -630,8 +630,7 @@ void ai_turn_towards_vector(const vms_vector &goal_vector, object_base &objp, fi
|
||||||
if (Seismic_tremor_magnitude) {
|
if (Seismic_tremor_magnitude) {
|
||||||
fix scale;
|
fix scale;
|
||||||
scale = fixdiv(2*Seismic_tremor_magnitude, Robot_info[get_robot_id(objp)].mass);
|
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, make_random_vector(), scale);
|
||||||
vm_vec_scale_add2(new_fvec, rand_vec, scale);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vm_vector_2_matrix(objp.orient, new_fvec, nullptr, &objp.orient.rvec);
|
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;
|
delta_time = GameTime64 - Ai_cloak_info[cloak_index].last_time;
|
||||||
if (delta_time > F1_0*2) {
|
if (delta_time > F1_0*2) {
|
||||||
Ai_cloak_info[cloak_index].last_time = GameTime64;
|
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, make_random_vector(), 8 * delta_time);
|
||||||
vm_vec_scale_add2(Ai_cloak_info[cloak_index].last_position, randvec, 8*delta_time );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto dist = vm_vec_normalized_dir_quick(vec_to_player, Ai_cloak_info[cloak_index].last_position, pos);
|
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)));
|
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);
|
auto goal_point = vm_vec_add(ConsoleObject->pos, goal_vector);
|
||||||
const auto rand_vec = make_random_vector();
|
vm_vec_scale_add2(goal_point, make_random_vector(), F1_0*8);
|
||||||
vm_vec_scale_add2(goal_point, rand_vec, F1_0*8);
|
|
||||||
const auto vec_to_goal = vm_vec_normalized_quick(vm_vec_sub(goal_point, obj->pos));
|
const auto vec_to_goal = vm_vec_normalized_quick(vm_vec_sub(goal_point, obj->pos));
|
||||||
move_towards_vector(obj, vec_to_goal, 0);
|
move_towards_vector(obj, vec_to_goal, 0);
|
||||||
ai_turn_towards_vector(vec_to_player, obj, robptr->turn_time[Difficulty_level]);
|
ai_turn_towards_vector(vec_to_player, obj, robptr->turn_time[Difficulty_level]);
|
||||||
|
|
|
@ -416,8 +416,7 @@ void do_controlcen_frame(const vobjptridx_t obj)
|
||||||
while ((d_rand() > rand_prob) && (count < 4))
|
while ((d_rand() > rand_prob) && (count < 4))
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
const auto randvec = make_random_vector();
|
vm_vec_scale_add2(vec_to_goal, make_random_vector(), F1_0/scale_divisor);
|
||||||
vm_vec_scale_add2(vec_to_goal, randvec, F1_0/scale_divisor);
|
|
||||||
vm_vec_normalize_quick(vec_to_goal);
|
vm_vec_normalize_quick(vec_to_goal);
|
||||||
if (Game_mode & GM_MULTI)
|
if (Game_mode & GM_MULTI)
|
||||||
multi_send_controlcen_fire(vec_to_goal, best_gun_num, obj);
|
multi_send_controlcen_fire(vec_to_goal, best_gun_num, obj);
|
||||||
|
|
|
@ -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);
|
multi_digi_link_sound_to_pos(SOUND_VOLATILE_WALL_HISS,hitseg, 0, hitpt, 0, F1_0);
|
||||||
}
|
}
|
||||||
hit_dir = hitseg->sides[hitside].normals[0];
|
hit_dir = hitseg->sides[hitside].normals[0];
|
||||||
const auto rand_vec = make_random_vector();
|
vm_vec_scale_add2(hit_dir, make_random_vector(), F1_0/8);
|
||||||
vm_vec_scale_add2(hit_dir, rand_vec, F1_0/8);
|
|
||||||
vm_vec_normalize_quick(hit_dir);
|
vm_vec_normalize_quick(hit_dir);
|
||||||
bump_one_object(obj, hit_dir, F1_0*8);
|
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);
|
const auto type = check_volatile_wall(obj, hitseg, hitside);
|
||||||
if (type != volatile_wall_result::none)
|
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)) {
|
if ((GameTime64 > Last_volatile_scrape_sound_time + F1_0/4) || (GameTime64 < Last_volatile_scrape_sound_time)) {
|
||||||
Last_volatile_scrape_sound_time = GameTime64;
|
Last_volatile_scrape_sound_time = GameTime64;
|
||||||
const auto sound = (type == volatile_wall_result::lava) ? SOUND_VOLATILE_WALL_HISS : SOUND_SHIP_IN_WATER;
|
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);
|
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, make_random_vector(), F1_0/8);
|
||||||
vm_vec_scale_add2(hit_dir, rand_vec, F1_0/8);
|
|
||||||
vm_vec_normalize_quick(hit_dir);
|
vm_vec_normalize_quick(hit_dir);
|
||||||
bump_one_object(obj, hit_dir, F1_0*8);
|
bump_one_object(obj, hit_dir, F1_0*8);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1519,10 +1519,8 @@ void GameProcessFrame(void)
|
||||||
rotvel.x += rx;
|
rotvel.x += rx;
|
||||||
rotvel.z += rz;
|
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;
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -448,8 +448,7 @@ static void create_omega_blobs(const segptridx_t firing_segnum, const vms_vector
|
||||||
|
|
||||||
// Every so often, re-perturb blobs
|
// Every so often, re-perturb blobs
|
||||||
if ((i % 4) == 3) {
|
if ((i % 4) == 3) {
|
||||||
const auto temp_vec = make_random_vector();
|
vm_vec_scale_add2(perturb_vec, make_random_vector(), F1_0/4);
|
||||||
vm_vec_scale_add2(perturb_vec, temp_vec, F1_0/4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto temp_pos = vm_vec_scale_add(blob_pos, perturb_vec, perturb_array[i]);
|
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_query fq;
|
||||||
fvi_info hit_data;
|
fvi_info hit_data;
|
||||||
int fate;
|
int fate;
|
||||||
const auto perturb_vec = make_random_vector();
|
const auto &&perturbed_fvec = vm_vec_scale_add(parent_objp->orient.fvec, make_random_vector(), F1_0/16);
|
||||||
const auto perturbed_fvec = vm_vec_scale_add(parent_objp->orient.fvec, perturb_vec, F1_0/16);
|
|
||||||
vm_vec_scale_add(goal_pos, firing_pos, perturbed_fvec, MAX_OMEGA_DIST);
|
vm_vec_scale_add(goal_pos, firing_pos, perturbed_fvec, MAX_OMEGA_DIST);
|
||||||
fq.startseg = firing_segnum;
|
fq.startseg = firing_segnum;
|
||||||
if (fq.startseg == segment_none) {
|
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);
|
make_random_vector(vector_to_goal);
|
||||||
} else {
|
} else {
|
||||||
vm_vec_normalized_dir_quick(vector_to_goal, goal_obj->pos, objp->pos);
|
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, make_random_vector(), F1_0/4);
|
||||||
vm_vec_scale_add2(vector_to_goal, random_vector, F1_0/4);
|
|
||||||
vm_vec_normalize_quick(vector_to_goal);
|
vm_vec_normalize_quick(vector_to_goal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue