29 #define AWACS_STAMP_TIME 1000
173 vec3d dist_vec, subsys_pos;
174 float closest = 0.0f;
176 int closest_index = -1;
177 int idx, stealth_ship = 0, check_huge_ship = 0, friendly_stealth_invisible = 0;
188 #define ALWAYS_TARGETABLE 1.5f
189 #define MARGINALLY_TARGETABLE 0.5f
190 #define UNTARGETABLE -1.0f
191 #define FULLY_TARGETABLE (viewer_has_primitive_sensors ? ((distance < viewer->primitive_sensor_range) ? MARGINALLY_TARGETABLE : UNTARGETABLE) : ALWAYS_TARGETABLE)
222 if ( !(stealth_ship && friendly_stealth_invisible) )
236 if ((stealth_ship || nebula_enabled) && use_awacs)
241 if (Awacs[idx].
team != viewer->
team)
270 if (test > Awacs[idx].subsys->awacs_radius)
273 if ((closest_index == -1) || (test < closest))
287 if (closest_index >= 0)
310 if (closest_index >= 0)
336 if (test < (0.5
f * scan_nebula_range))
338 else if (test < scan_nebula_range)
358 memset(team_count, 0,
MAX_IFFS *
sizeof(
int));
370 shipp = &
Ships[ship_num];
385 team_ships[shipp->
team][team_count[shipp->
team]] = ship_num;
386 team_count[shipp->
team]++;
389 int idx, en_idx, cur_count, en_count;
390 int *cur_team_ships, *en_team_ships;
393 for (
int cur_team = 0; cur_team <
MAX_IFFS; cur_team++)
396 cur_count = team_count[cur_team];
397 cur_team_ships = team_ships[cur_team];
405 for (
int en_team = 0; en_team <
MAX_IFFS; en_team++)
412 en_count = team_count[en_team];
413 en_team_ships = team_ships[en_team];
416 for (en_idx = 0; en_idx < en_count; en_idx++)
419 for (idx = 0; idx < cur_count; idx++)
int timestamp(int delta_ms)
#define MY_NET_PLAYER_NUM
model_subsystem * system_info
float vm_vec_mag_quick(const vec3d *v)
#define MISSION_FLAG_FULLNEB
ubyte Ship_visibility_by_team[MAX_IFFS][MAX_SHIPS]
#define SF2_FRIENDLY_STEALTH_INVIS
#define END_OF_LIST(head)
float Awacs_team[MAX_IFFS]
awacs_entry Awacs[MAX_AWACS]
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
void awacs_update_all_levels()
#define MARGINALLY_TARGETABLE
#define SF_HIDDEN_FROM_SENSORS
#define MULTI_OBSERVER(np)
struct awacs_entry awacs_entry
void team_visibility_update()
int get_subsystem_pos(vec3d *pos, object *objp, ship_subsys *subsysp)
object Objects[MAX_OBJECTS]
#define ALWAYS_TARGETABLE
int Hud_max_targeting_range
float awacs_get_level(object *target, ship *viewer, int use_awacs)
void vm_vec_sub(vec3d *dest, const vec3d *src0, const vec3d *src1)
float vm_vec_dist_quick(const vec3d *v0, const vec3d *v1)
SCP_vector< ship_info > Ship_info
#define timestamp_elapsed(stamp)
SCP_vector< species_info > Species_info
int ship_is_visible_by_team(object *target, ship *viewer)
#define SF2_PRIMITIVE_SENSORS
int check_world_pt_in_expanded_ship_bbox(vec3d *world_pt, object *objp, float delta_box)
net_player Net_players[MAX_PLAYERS]