FS2_Open
Open source remastering of the Freespace 2 engine
radarsetup.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) Volition, Inc. 1999. All rights reserved.
3  *
4  * All source code herein is the property of Volition, Inc. You may not sell
5  * or otherwise commercially exploit the source or things you created based on the
6  * source.
7  *
8 */
9 
10 
11 
12 #include "bmpman/bmpman.h"
13 #include "debugconsole/console.h"
14 #include "freespace2/freespace.h"
15 #include "gamesnd/gamesnd.h"
16 #include "globalincs/linklist.h"
17 #include "graphics/font.h"
18 #include "iff_defs/iff_defs.h"
19 #include "io/timer.h"
20 #include "jumpnode/jumpnode.h"
21 #include "localization/localize.h"
22 #include "network/multi.h"
23 #include "object/object.h"
24 #include "playerman/player.h"
25 #include "radar/radar.h"
26 #include "radar/radarorb.h"
27 #include "radar/radarsetup.h"
28 #include "ship/awacs.h"
29 #include "ship/ship.h"
30 #include "ship/subsysdamage.h"
31 #include "weapon/emp.h"
32 #include "weapon/weapon.h"
33 
35 
37 {
38  // homing missile (yellow)
39  {
40  { 0x40, 0x40, 0x00 }, // dim
41  { 0x7f, 0x7f, 0x00 }, // bright
42  },
43 
44  // navbuoy or cargo (gray)
45  {
46  { 0x40, 0x40, 0x40 }, // dim
47  { 0x7f, 0x7f, 0x7f }, // bright
48  },
49 
50  // warping ship (blue)
51  {
52  { 0x00, 0x00, 0x7f }, // dim
53  { 0x00, 0x00, 0xff }, // bright
54  },
55 
56  // jump node (gray)
57  {
58  { 0x40, 0x40, 0x40 }, // dim
59  { 0x7f, 0x7f, 0x7f }, // bright
60  },
61 
62  // tagged (yellow)
63  {
64  { 0x7f, 0x7f, 0x00 }, // dim
65  { 0xff, 0xff, 0x00 }, // bright
66  },
67 };
68 
70 
72 
73 blip Blip_bright_list[MAX_BLIP_TYPES]; // linked list of bright blips
74 blip Blip_dim_list[MAX_BLIP_TYPES]; // linked list of dim blips
75 
76 blip Blips[MAX_BLIPS]; // blips pool
77 int N_blips; // next blip index to take from pool
78 
79 float Radar_bright_range; // range at which we start dimming the radar blips
80 int Radar_calc_bright_dist_timer; // timestamp at which we recalc Radar_bright_range
81 
82 extern int radar_iff_color[5][2][4];
83 
84 int See_all = 0;
85 
86 DCF_BOOL(see_all, See_all);
87 
88 void radar_stuff_blip_info(object *objp, int is_bright, color **blip_color, int *blip_type)
89 {
90  ship *shipp = NULL;
91 
92  switch(objp->type)
93  {
94  case OBJ_SHIP:
95  shipp = &Ships[objp->instance];
96 
97  if (shipp->flags & SF_ARRIVING_STAGE_1)
98  {
99  *blip_color = &Radar_colors[RCOL_WARPING_SHIP][is_bright];
100  *blip_type = BLIP_TYPE_WARPING_SHIP;
101  }
102  else if (ship_is_tagged(objp))
103  {
104  *blip_color = &Radar_colors[RCOL_TAGGED][is_bright];
105  *blip_type = BLIP_TYPE_TAGGED_SHIP;
106  }
107  else if (Ship_info[shipp->ship_info_index].flags & (SIF_NAVBUOY|SIF_CARGO))
108  {
109  *blip_color = &Radar_colors[RCOL_NAVBUOY_CARGO][is_bright];
110  *blip_type = BLIP_TYPE_NAVBUOY_CARGO;
111  }
112  else
113  {
114  *blip_color = iff_get_color_by_team_and_object(shipp->team, Player_ship->team, is_bright, objp);
115  *blip_type = BLIP_TYPE_NORMAL_SHIP;
116  }
117 
118  break;
119 
120  case OBJ_WEAPON:
121  if ((Weapons[objp->instance].lssm_stage == 2) || (Weapons[objp->instance].lssm_stage == 4))
122  {
123  *blip_color = &Radar_colors[RCOL_WARPING_SHIP][is_bright];
124  *blip_type = BLIP_TYPE_WARPING_SHIP;
125  }
126  else
127  {
128  *blip_color = &Radar_colors[RCOL_BOMB][is_bright];
129  *blip_type = BLIP_TYPE_BOMB;
130  }
131 
132  break;
133 
134  case OBJ_JUMP_NODE:
135  *blip_color = &Radar_colors[RCOL_JUMP_NODE][is_bright];
136  *blip_type = BLIP_TYPE_JUMP_NODE;
137 
138  break;
139 
140  default:
141  Error(LOCATION, "Illegal blip type in radar.");
142  break;
143  }
144 }
145 
146 void radar_plot_object( object *objp )
147 {
148  vec3d pos, tempv;
149  float awacs_level, dist, max_radar_dist;
150  vec3d world_pos = objp->pos;
152 
153  // don't process anything here. Somehow, a jumpnode object caused this function
154  // to get entered on server side.
156  return;
157  }
158 
159  // multiplayer clients ingame joining should skip this function
161  return;
162  }
163 
164  // get team-wide awacs level for the object if not ship
165  int ship_is_visible = 0;
166  if (objp->type == OBJ_SHIP) {
167  if (Player_ship != NULL) {
169  ship_is_visible = 1;
170  }
171  }
172  }
173 
174  // only check awacs level if ship is not visible by team
175  awacs_level = 1.5f;
176  if (Player_ship != NULL && !ship_is_visible) {
177  awacs_level = awacs_get_level(objp, Player_ship);
178  }
179 
180  // if the awacs level is unviewable - bail
181  if(awacs_level < 0.0f && !See_all){
182  return;
183  }
184 
185  // Apply object type filters
186  switch (objp->type)
187  {
188  case OBJ_SHIP:
189  // Place to cull ships, such as NavBuoys
190  break;
191 
192  case OBJ_JUMP_NODE:
193  {
194  for (jnp = Jump_nodes.begin(); jnp != Jump_nodes.end(); ++jnp) {
195  if(jnp->GetSCPObject() == objp)
196  break;
197  }
198 
199  // don't plot hidden jump nodes
200  if ( jnp->IsHidden() )
201  return;
202 
203  // filter jump nodes here if required
204  break;
205  }
206 
207  case OBJ_WEAPON:
208  {
209  // if not a bomb, return
212  return;
213 
214  // if explicitly hidden, return
216  return;
217 
218  // if we don't attack the bomb, return
220  return;
221 
222  // if a local ssm is in subspace, return
223  if (Weapons[objp->instance].lssm_stage == 3)
224  return;
225 
226  // if corkscrew missile use last frame pos for pos
228  world_pos = objp->last_pos;
229 
230  break;
231  }
232 
233  // if any other kind of object, don't show it on radar
234  default:
235  return;
236  }
237 
238  // Retrieve the eye orientation so we can position the blips relative to it
240 
241  if (Player_obj->type == OBJ_SHIP)
242  ship_get_eye(&tempv, &eye_orient, Player_obj, false , false);
243  else
244  eye_orient = Player_obj->orient;
245 
246  // JAS -- new way of getting the rotated point that doesn't require this to be
247  // in a g3_start_frame/end_frame block.
248  vm_vec_sub(&tempv, &world_pos, &Player_obj->pos);
249  vm_vec_rotate(&pos, &tempv, &eye_orient);
250 
251  // Apply range filter
252  dist = vm_vec_dist(&world_pos, &Player_obj->pos);
253  max_radar_dist = Radar_ranges[HUD_config.rp_dist];
254  if (dist > max_radar_dist) {
255  return;
256  }
257 
258  // determine the range within which the radar blip is bright
260  {
263  if (Radar_bright_range <= 0)
264  Radar_bright_range = 1500.0f;
265  }
266 
267  blip *b;
268  int blip_bright = 0;
269  int blip_type = 0;
270 
271  if (N_blips >= MAX_BLIPS)
272  {
273  return;
274  }
275 
276  b = &Blips[N_blips];
277  b->flags = 0;
278 
279  // bright if within range
280  blip_bright = (dist <= Radar_bright_range);
281 
282  // flag the blip as a current target if it is
283  if (OBJ_INDEX(objp) == Player_ai->target_objnum)
284  {
286  blip_bright = 1;
287  }
288 
289  radar_stuff_blip_info(objp, blip_bright, &b->blip_color, &blip_type);
290 
291  if (blip_bright)
292  list_append(&Blip_bright_list[blip_type], b);
293  else
294  list_append(&Blip_dim_list[blip_type], b);
295 
296  b->position = pos;
297  b->dist = dist;
298  b->objp = objp;
299  b->radar_image_2d = -1;
300  b->radar_color_image_2d = -1;
301  b->radar_image_size = -1;
302  b->radar_projection_size = 1.0f;
303 
304  // see if blip should be drawn distorted
305  // also determine if alternate image was defined for this ship
306  if (objp->type == OBJ_SHIP)
307  {
308  // ships specifically hidden from sensors
311 
312  // determine if its AWACS distorted
313  if (awacs_level < 1.0f)
315 
316  ship_info *Iff_ship_info = &Ship_info[Ships[objp->instance].ship_info_index];
317 
318  if (Iff_ship_info->radar_image_2d_idx >= 0 || Iff_ship_info->radar_color_image_2d_idx >= 0)
319  {
320  b->radar_image_2d = Iff_ship_info->radar_image_2d_idx;
322  b->radar_image_size = Iff_ship_info->radar_image_size;
324  }
325  }
326 
327  // don't distort the sensor blips if the player has primitive sensors and the nebula effect
328  // is not active
330  {
332  b->flags &= ~BLIP_DRAW_DISTORTED;
333  }
334 
335  N_blips++;
336 }
337 
339 {
340  for (int i=0; i<MAX_RADAR_COLORS; i++ ) {
341  for (int j=0; j<MAX_RADAR_LEVELS; j++ ) {
342  if (radar_iff_color[i][j][0] >= 0) {
343  gr_init_alphacolor( &Radar_colors[i][j], radar_iff_color[i][j][0], radar_iff_color[i][j][1], radar_iff_color[i][j][2], radar_iff_color[i][j][3] );
344  } else {
345  gr_init_alphacolor( &Radar_colors[i][j], Radar_color_rgb[i][j].r, Radar_color_rgb[i][j].g, Radar_color_rgb[i][j].b, 255 );
346  }
347  }
348  }
349 
351 }
352 
354 {
355  int i;
356 
357  N_blips=0;
358 
359  for (i=0; i<MAX_BLIP_TYPES; i++) {
360  list_init(&Blip_bright_list[i]);
361  list_init(&Blip_dim_list[i]);
362  }
363 }
364 
366 {
368 }
369 
372 {
373 }
374 
375 HudGaugeRadar::HudGaugeRadar(int _gauge_object, int r, int g, int b):
377 {
378 }
379 
381 {
383  // default to a '*' if the font has no special chars
384  // nothing is really close to the infinity symbol...
385  if (sc == 0) {
386  Radar_infinity_icon = ubyte ('*');
387  } else {
388  Radar_infinity_icon = sc;
389  }
390 }
391 
393 {
394  Radar_radius[0] = w;
395  Radar_radius[1] = h;
396 }
397 
399 {
400  Radar_blip_radius_normal = normal;
402 }
403 
405 {
408 }
409 
411 {
414 }
415 
417 {
420 }
421 
422 void HudGaugeRadar::render(float frametime)
423 {
424 }
425 
427 {
428 }
429 
431 {
432  int i;
433 
434  Radar_death_timer = 0;
436  Radar_static_next = 0;
439 
440  for ( i=0; i<NUM_FLICKER_TIMERS; i++ ) {
442  Radar_flicker_on[i]=0;
443  }
444 
445  int w,h;
448  if (sc == 0) {
449  Warning(LOCATION, "1st font doesn't have a special characters index, radar may not work");
450  }
451 
452  Small_blip_string[0] = sc + 5;
453  Small_blip_string[1] = 0;
455  Small_blip_offset_x = -w/2;
456  Small_blip_offset_y = -h/2;
457 
458  Large_blip_string[0] = sc + 6;
459  Large_blip_string[1] = 0;
461  Large_blip_offset_x = -w/2;
462  Large_blip_offset_y = -h/2;
463 
465 }
466 
468 {
469  // hud_set_bright_color();
471 
472  switch ( HUD_config.rp_dist ) {
473 
474  case RR_SHORT:
475  renderPrintf(position[0] + Radar_dist_offsets[RR_SHORT][0], position[1] + Radar_dist_offsets[RR_SHORT][1], XSTR( "2k", 467));
476  break;
477 
478  case RR_LONG:
479  renderPrintf(position[0] + Radar_dist_offsets[RR_LONG][0], position[1] + Radar_dist_offsets[RR_LONG][1], XSTR( "10k", 468));
480  break;
481 
482  case RR_INFINITY:
484  break;
485 
486  default:
487  Int3(); // can't happen (get Alan if it does)
488  break;
489  }
490 }
491 
499 {
500  Assert( objp != NULL );
501 
502  if (objp->flags & OF_SHOULD_BE_DEAD)
503  {
504  return NOT_VISIBLE;
505  }
506 
507  vec3d pos, tempv;
508  float awacs_level, dist, max_radar_dist;
509  vec3d world_pos = objp->pos;
511 
512  // get team-wide awacs level for the object if not ship
513  int ship_is_visible = 0;
514  if (objp->type == OBJ_SHIP) {
515  if (Player_ship != NULL) {
517  ship_is_visible = 1;
518  }
519  }
520  }
521 
522  // only check awacs level if ship is not visible by team
523  awacs_level = 1.5f;
524  if (Player_ship != NULL && !ship_is_visible) {
525  awacs_level = awacs_get_level(objp, Player_ship);
526  }
527 
528  // if the awacs level is unviewable - bail
529  if(awacs_level < 0.0f && !See_all){
530  return NOT_VISIBLE;
531  }
532 
533  // Apply object type filters
534  switch (objp->type)
535  {
536  case OBJ_SHIP:
537  if (Ships[objp->instance].flags & SIF_STEALTH)
538  return NOT_VISIBLE;
539 
540  // Ships that are warp in in are not visible on the radar
542  return NOT_VISIBLE;
543 
544  break;
545 
546  case OBJ_JUMP_NODE:
547  {
548  for (jnp = Jump_nodes.begin(); jnp != Jump_nodes.end(); ++jnp) {
549  if(jnp->GetSCPObject() == objp)
550  break;
551  }
552 
553  // don't plot hidden jump nodes
554  if ( jnp->IsHidden() )
555  return NOT_VISIBLE;
556 
557  // filter jump nodes here if required
558  break;
559  }
560 
561  case OBJ_WEAPON:
562  {
563  // if not a bomb, return
566  return NOT_VISIBLE;
567 
568  // if explicitly hidden, return
570  return NOT_VISIBLE;
571 
572  // if we don't attack the bomb, return
574  return NOT_VISIBLE;
575 
576  // if a local ssm is in subspace, return
577  if (Weapons[objp->instance].lssm_stage == 3)
578  return NOT_VISIBLE;
579 
580  break;
581  }
582 
583  // if any other kind of object, don't show it on radar
584  default:
585  return NOT_VISIBLE;
586  }
587 
588  vm_vec_sub(&tempv, &world_pos, &Player_obj->pos);
589  vm_vec_rotate(&pos, &tempv, &Player_obj->orient);
590 
591  // Apply range filter
592  dist = vm_vec_dist(&world_pos, &Player_obj->pos);
593  max_radar_dist = Radar_ranges[HUD_config.rp_dist];
594  if (dist > max_radar_dist) {
595  return NOT_VISIBLE;
596  }
597 
598  if (objp->type == OBJ_SHIP)
599  {
600  // ships specifically hidden from sensors
602  return DISTORTED;
603 
604  // determine if its AWACS distorted
605  if (awacs_level < 1.0f)
606  return DISTORTED;
607  }
608 
609  return VISIBLE;
610 }
#define RR_SHORT
Definition: hudconfig.h:29
float Radar_bright_range
Definition: radarsetup.cpp:79
virtual void initialize()
Definition: hud.cpp:1049
void radar_plot_object(object *objp)
Definition: radarsetup.cpp:146
float player_farthest_weapon_range()
int timestamp(int delta_ms)
Definition: timer.cpp:226
void radar_mission_init()
Definition: radarsetup.cpp:338
#define MULTIPLAYER_CLIENT
Definition: multi.h:132
int i
Definition: multi_pxo.cpp:466
weapon Weapons[MAX_WEAPONS]
Definition: weapons.cpp:78
Fully visible on the radar.
Definition: radarsetup.h:90
void radar_frame_init()
Definition: radarsetup.cpp:365
ai_info * Player_ai
Definition: ai.cpp:24
int team
Definition: ship.h:606
#define BLIP_TYPE_JUMP_NODE
Definition: radarsetup.h:62
#define HUD_C_BRIGHT
Definition: hud.h:162
int Large_blip_offset_x
Definition: radarsetup.h:123
#define RCOL_TAGGED
Definition: radarsetup.h:58
int Game_mode
Definition: systemvars.cpp:24
GLfloat GLfloat GLfloat GLfloat h
Definition: Glext.h:7280
#define MISSION_FLAG_FULLNEB
Definition: missionparse.h:70
Visible but not fully.
Definition: radarsetup.h:91
float Radar_ranges[RR_MAX_RANGES]
Definition: hudconfig.cpp:96
int obj_team(object *objp)
Definition: object.cpp:1843
weapon_info Weapon_info[MAX_WEAPON_TYPES]
Definition: weapons.cpp:79
float radar_projection_size_mult
Definition: ship.h:1431
net_player * Net_player
Definition: multi.cpp:94
blip Blips[MAX_BLIPS]
Definition: radarsetup.cpp:76
blip Blip_bright_list[MAX_BLIP_TYPES]
Definition: radarsetup.cpp:73
#define VM_WARP_CHASE
Definition: systemvars.h:37
void setGaugeColor(int bright_index=-4)
Definition: hud.cpp:445
color * iff_get_color_by_team_and_object(int team, int seen_from_team, int is_bright, object *objp)
Definition: iff_defs.cpp:678
#define MAX_BLIPS
Definition: radarsetup.h:49
void _cdecl void void _cdecl void _cdecl Warning(char *filename, int line, SCP_FORMAT_STRING const char *format,...) SCP_FORMAT_STRING_ARGS(3
Assert(pm!=NULL)
int target_objnum
Definition: ai.h:339
Definition: pstypes.h:88
#define WIF_CORKSCREW
Definition: weapon.h:71
RadarVisibility radar_is_visible(object *objp)
Return if the specified object is visible on the radar.
Definition: radarsetup.cpp:498
void gr_init_alphacolor(color *clr, int r, int g, int b, int alpha, int type)
Definition: 2d.cpp:1173
float radar_projection_size
Definition: radarsetup.h:42
#define VM_EXTERNAL
Definition: systemvars.h:31
Definition: 2d.h:95
#define SIF_CARGO
Definition: ship.h:884
#define MAX_RADAR_LEVELS
Definition: radarsetup.h:52
GLclampf f
Definition: Glext.h:7097
int Small_blip_offset_x
Definition: radarsetup.h:121
vec3d * vm_vec_rotate(vec3d *dest, const vec3d *src, const matrix *m)
Definition: vecmat.cpp:933
int Radar_radius[2]
Definition: radarsetup.h:105
void radar_null_nblips()
Definition: radarsetup.cpp:353
int Radar_death_timer
Definition: radarsetup.h:116
int ship_is_tagged(object *objp)
Definition: ship.cpp:17263
void initBlipRadius(int normal, int target)
Definition: radarsetup.cpp:398
virtual void render(float frametime)
Definition: radarsetup.cpp:422
uint flags
Definition: ship.h:644
int flags
Definition: multi.h:463
object * objp
Definition: lua.cpp:3105
#define Int3()
Definition: pstypes.h:292
int Radar_static_looping
Definition: radarsetup.cpp:34
ship * shipp
Definition: lua.cpp:9162
color * blip_color
Definition: radarsetup.h:37
vec3d pos
Definition: object.h:152
void ship_get_eye(vec3d *eye_pos, matrix *eye_orient, object *obj, bool do_slew, bool from_origin)
Definition: ship.cpp:13227
void radar_stuff_blip_info(object *objp, int is_bright, color **blip_color, int *blip_type)
Definition: radarsetup.cpp:88
SCP_list< CJumpNode > Jump_nodes
Definition: jumpnode.cpp:16
#define RCOL_NAVBUOY_CARGO
Definition: radarsetup.h:55
Definition: hud.h:201
int weapon_info_index
Definition: weapon.h:164
int instance
Definition: object.h:150
rcol Radar_color_rgb[MAX_RADAR_COLORS][MAX_RADAR_LEVELS]
Definition: radarsetup.cpp:36
#define VM_DEAD_VIEW
Definition: systemvars.h:33
#define HUD_OBJECT_RADAR_STD
Definition: hudparse.h:142
vec3d last_pos
Definition: object.h:155
#define BLIP_DRAW_DISTORTED
Definition: radarsetup.h:80
GLdouble GLdouble GLdouble r
Definition: Glext.h:5337
RadarVisibility
Definition: radarsetup.h:87
int radar_image_2d
Definition: radarsetup.h:39
#define SIF_NAVBUOY
Definition: ship.h:891
DCF_BOOL(see_all, See_all)
GLboolean GLboolean g
Definition: Glext.h:5781
#define BLIP_TYPE_NORMAL_SHIP
Definition: radarsetup.h:67
int font_num
Definition: hud.h:210
virtual void pageIn()
Definition: radarsetup.cpp:426
int Radar_blip_radius_target
Definition: radarsetup.h:111
vec3d position
Definition: radarsetup.h:38
#define MAX_BLIP_TYPES
Definition: radarsetup.h:69
virtual void initialize()
Definition: radarsetup.cpp:430
#define OBJ_WEAPON
Definition: object.h:33
int radar_image_size
Definition: radarsetup.h:41
void initRadius(int w, int h)
Definition: radarsetup.cpp:392
#define WIF2_DONT_SHOW_ON_RADAR
Definition: weapon.h:112
char Small_blip_string[2]
Definition: radarsetup.h:126
#define w(p)
Definition: modelsinc.h:68
#define RCOL_WARPING_SHIP
Definition: radarsetup.h:56
#define SF_HIDDEN_FROM_SENSORS
Definition: ship.h:464
#define NETINFO_FLAG_INGAME_JOIN
Definition: multi.h:604
float vm_vec_dist(const vec3d *v0, const vec3d *v1)
Definition: vecmat.cpp:355
matrix eye_orient
Definition: fredrender.cpp:112
int lssm_stage
Definition: weapon.h:216
void initDistanceLongOffsets(int x, int y)
Definition: radarsetup.cpp:410
int Radar_flicker_timer[NUM_FLICKER_TIMERS]
Definition: radarsetup.h:118
Definition: ship.h:534
#define WIF2_SHOWN_ON_RADAR
Definition: weapon.h:105
void drawRange()
Definition: radarsetup.cpp:467
object * objp
Definition: radarsetup.h:45
color Radar_colors[MAX_RADAR_COLORS][MAX_RADAR_LEVELS]
Definition: radarsetup.cpp:71
int radar_image_size
Definition: ship.h:1430
int iff_x_attacks_y(int team_x, int team_y)
Definition: iff_defs.cpp:605
void initInfinityIcon()
Definition: radarsetup.cpp:380
int Radar_blip_radius_normal
Definition: radarsetup.h:110
GLint GLint GLint GLint GLint x
Definition: Glext.h:5182
#define SIF_STEALTH
Definition: ship.h:900
unsigned char ubyte
Definition: pstypes.h:62
int radar_color_image_2d_idx
Definition: ship.h:1429
int wi_flags
Definition: weapon.h:384
#define SF_ARRIVING_STAGE_1
Definition: ship.h:451
const char * XSTR(const char *str, int index)
Definition: localize.cpp:851
int Radar_calc_bright_dist_timer
Definition: radarsetup.cpp:80
#define OBJ_INDEX(objp)
Definition: object.h:235
ship * Player_ship
Definition: ship.cpp:124
int See_all
Definition: radarsetup.cpp:84
matrix orient
Definition: object.h:153
int wi_flags2
Definition: weapon.h:385
#define WIF_BOMB
Definition: weapon.h:63
#define OBJ_SHIP
Definition: object.h:32
void _cdecl void void _cdecl Error(const char *filename, int line, SCP_FORMAT_STRING const char *format,...) SCP_FORMAT_STRING_ARGS(3
#define GM_STANDALONE_SERVER
Definition: systemvars.h:27
ubyte lcl_get_font_index(int font_num)
Definition: localize.cpp:495
int N_blips
Definition: radarsetup.cpp:77
float dist
Definition: radarsetup.h:44
int Small_blip_offset_y
Definition: radarsetup.h:122
float awacs_get_level(object *target, ship *viewer, int use_awacs)
Definition: awacs.cpp:168
void vm_vec_sub(vec3d *dest, const vec3d *src0, const vec3d *src1)
Definition: vecmat.cpp:168
#define BLIP_TYPE_WARPING_SHIP
Definition: radarsetup.h:65
#define WIF2_SHOW_FRIENDLY
Definition: weapon.h:106
GLboolean GLboolean GLboolean b
Definition: Glext.h:5781
ship Ships[MAX_SHIPS]
Definition: ship.cpp:122
#define BLIP_TYPE_NAVBUOY_CARGO
Definition: radarsetup.h:63
#define BLIP_TYPE_BOMB
Definition: radarsetup.h:64
#define FONT1
Definition: font.h:65
int Radar_dist_offsets[RR_MAX_RANGES][2]
Definition: radarsetup.h:106
char Large_blip_string[2]
Definition: radarsetup.h:127
GLubyte GLubyte GLubyte GLubyte w
Definition: Glext.h:5679
int position[2]
Definition: hud.h:204
GLenum target
Definition: Glext.h:6872
void gr_get_string_size(int *w, int *h, const char *text, int len=9999)
Definition: font.cpp:196
blip Blip_dim_list[MAX_BLIP_TYPES]
Definition: radarsetup.cpp:74
#define RCOL_JUMP_NODE
Definition: radarsetup.h:57
#define RR_LONG
Definition: hudconfig.h:30
int radar_target_id_flags
Definition: radarsetup.cpp:69
int ship_info_index
Definition: ship.h:539
HUD_CONFIG_TYPE HUD_config
Definition: hudconfig.cpp:49
An overhauled/updated debug console to allow monitoring, testing, and general debugging of new featur...
SCP_vector< ship_info > Ship_info
Definition: ship.cpp:164
#define LOCATION
Definition: pstypes.h:245
#define VM_PADLOCK_ANY
Definition: systemvars.h:46
#define timestamp_elapsed(stamp)
Definition: timer.h:102
#define OF_SHOULD_BE_DEAD
Definition: object.h:106
#define HUD_RADAR
Definition: hudgauges.h:25
hull_check pos
Definition: lua.cpp:5050
int ship_is_visible_by_team(object *target, ship *viewer)
Definition: awacs.cpp:442
int Radar_static_next
Definition: radarsetup.h:114
void renderPrintf(int x, int y, const char *format,...)
Definition: hud.cpp:724
void initDistanceInfinityOffsets(int x, int y)
Definition: radarsetup.cpp:416
void initDistanceShortOffsets(int x, int y)
Definition: radarsetup.cpp:404
#define BLIP_TYPE_TAGGED_SHIP
Definition: radarsetup.h:66
object * Player_obj
Definition: object.cpp:56
uint flags2
Definition: ship.h:645
int Large_blip_offset_y
Definition: radarsetup.h:124
int flags
Definition: radarsetup.h:36
int Radar_avail_prev_frame
Definition: radarsetup.h:115
#define VM_OTHER_SHIP
Definition: systemvars.h:35
#define RCOL_BOMB
Definition: radarsetup.h:54
#define SF2_PRIMITIVE_SENSORS
Definition: ship.h:483
int Radar_flicker_on[NUM_FLICKER_TIMERS]
Definition: radarsetup.h:119
false
Definition: lua.cpp:6789
uint flags
Definition: object.h:151
mission The_mission
void gr_set_font(int fontnum)
Definition: font.cpp:566
#define NUM_FLICKER_TIMERS
Definition: radarsetup.h:25
char type
Definition: object.h:146
int Radar_static_playing
Definition: radarsetup.h:113
int radar_image_2d_idx
Definition: ship.h:1428
#define RR_INFINITY
Definition: hudconfig.h:31
#define OBJ_JUMP_NODE
Definition: object.h:45
int radar_iff_color[5][2][4]
Definition: iff_defs.cpp:24
int radar_color_image_2d
Definition: radarsetup.h:40
GLint y
Definition: Gl.h:1505
Not visible on the radar.
Definition: radarsetup.h:89
#define BLIP_CURRENT_TARGET
Definition: radarsetup.h:78
#define MAX_RADAR_COLORS
Definition: radarsetup.h:51
ubyte Radar_infinity_icon
Definition: radarsetup.h:128