diff --git a/main/cntrlcen.c b/main/cntrlcen.c index 65514ec47..1eeebf85a 100644 --- a/main/cntrlcen.c +++ b/main/cntrlcen.c @@ -290,10 +290,11 @@ void do_controlcen_frame(object *obj) controlcen_death_silence = 0; if ((Control_center_next_fire_time < 0) && !(controlcen_death_silence > F1_0*2)) { + reactor *reactor = get_reactor_definition(obj->id); if (Players[Player_num].flags & PLAYER_FLAGS_CLOAKED) - best_gun_num = calc_best_gun(Reactors[0].n_guns, obj, &Believed_player_pos); + best_gun_num = calc_best_gun(reactor->n_guns, obj, &Believed_player_pos); else - best_gun_num = calc_best_gun(Reactors[0].n_guns, obj, &ConsoleObject->pos); + best_gun_num = calc_best_gun(reactor->n_guns, obj, &ConsoleObject->pos); if (best_gun_num != -1) { vms_vector vec_to_goal; @@ -396,8 +397,9 @@ void init_controlcen_for_level(void) } else { // Compute all gun positions. objp = &Objects[cntrlcen_objnum]; - for (i=0; iid); + for (i=0; in_guns; i++) + calc_controlcen_gun_point(reactor, objp, i); Control_center_present = 1; // Boost control center strength at higher levels. diff --git a/main/cntrlcen.h b/main/cntrlcen.h index 9ef223ae6..63ecb50f1 100644 --- a/main/cntrlcen.h +++ b/main/cntrlcen.h @@ -57,6 +57,12 @@ static inline int get_reactor_model_number(int id) return id; } +static inline reactor *get_reactor_definition(int id) +{ + (void)id; + return &Reactors[0]; +} + extern int Control_center_been_hit; extern int Control_center_player_been_seen; extern int Control_center_next_fire_time;