FS2_Open
Open source remastering of the Freespace 2 engine
radarsetup.h
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 #ifndef _FS2OPEN_RADARSETUP_H
13 #define _FS2OPEN_RADARSETUP_H
14 
15 #include "hud/hud.h"
16 #include "hud/hudconfig.h"
17 
18 //which radar type are we using
19 //to add another radar type, begin by adding a RADAR_MODE_* define and increment MAX_RADAR_MODES
20 #define RADAR_MODE_STANDARD 0
21 #define RADAR_MODE_ORB 1
22 #define MAX_RADAR_MODES 2
23 
24 //structures
25 #define NUM_FLICKER_TIMERS 2
26 
27 class object;
28 
29 typedef struct rcol {
30  ubyte r, g, b;
31 } rcol;
32 
33 typedef struct blip {
35  int rad;
36  int flags;
43 
44  float dist;
45  object* objp;
46 } blip;
47 
48 
49 #define MAX_BLIPS 150
50 
51 #define MAX_RADAR_COLORS 5
52 #define MAX_RADAR_LEVELS 2 // bright and dim radar dots are allowed
53 
54 #define RCOL_BOMB 0
55 #define RCOL_NAVBUOY_CARGO 1
56 #define RCOL_WARPING_SHIP 2
57 #define RCOL_JUMP_NODE 3
58 #define RCOL_TAGGED 4
59 
61 
62 #define BLIP_TYPE_JUMP_NODE 0
63 #define BLIP_TYPE_NAVBUOY_CARGO 1
64 #define BLIP_TYPE_BOMB 2
65 #define BLIP_TYPE_WARPING_SHIP 3
66 #define BLIP_TYPE_TAGGED_SHIP 4
67 #define BLIP_TYPE_NORMAL_SHIP 5
68 
69 #define MAX_BLIP_TYPES 6
70 
71 extern blip Blip_bright_list[MAX_BLIP_TYPES]; // linked list of bright blips
72 extern blip Blip_dim_list[MAX_BLIP_TYPES]; // linked list of dim blips
73 
74 extern blip Blips[MAX_BLIPS]; // blips pool
75 extern int N_blips; // next blip index to take from pool
76 
77 // blip flags
78 #define BLIP_CURRENT_TARGET (1<<0)
79 #define BLIP_DRAW_DIM (1<<1) // object is farther than Radar_bright_range units away
80 #define BLIP_DRAW_DISTORTED (1<<2) // object is resistant to sensors, so draw distorted
81 
82 extern float Radar_bright_range; // range within which the radar blips are bright
83 extern int Radar_calc_bright_dist_timer; // timestamp at which we recalc Radar_bright_range
84 
85 extern int See_all;
86 
88 {
92 };
93 
94 void radar_frame_init();
95 void radar_mission_init();
96 void radar_plot_object( object *objp );
98 
99 extern int Radar_static_looping;
100 
101 class HudGaugeRadar: public HudGauge
102 {
103 protected:
104  // user defined members
105  int Radar_radius[2];
107 
108  // color Radar_colors[MAX_RADAR_COLORS][MAX_RADAR_LEVELS];
109 
112 
113  int Radar_static_playing; // is static currently playing on the radar?
114  int Radar_static_next; // next time to toggle static on radar
115  int Radar_avail_prev_frame; // was radar active last frame?
116  int Radar_death_timer; // timestamp used to play static on radar
117 
118  int Radar_flicker_timer[NUM_FLICKER_TIMERS]; // timestamp used to flicker blips on and off
120 
125 
129 public:
130  HudGaugeRadar();
131  HudGaugeRadar(int _gauge_object, int r, int g, int b);
132  void initRadius(int w, int h);
133  void initBlipRadius(int normal, int target);
134  void initDistanceShortOffsets(int x, int y);
135  void initDistanceLongOffsets(int x, int y);
136  void initDistanceInfinityOffsets(int x, int y);
137  void initInfinityIcon();
138 
139  void drawRange();
140  virtual void render(float frametime);
141  virtual void initialize();
142  virtual void pageIn();
143 };
144 
145 #endif //_FS2OPEN_RADARSETUP_H
void radar_plot_object(object *objp)
Definition: radarsetup.cpp:146
blip Blip_bright_list[MAX_BLIP_TYPES]
Definition: radarsetup.cpp:73
Fully visible on the radar.
Definition: radarsetup.h:90
int Large_blip_offset_x
Definition: radarsetup.h:123
GLfloat GLfloat GLfloat GLfloat h
Definition: Glext.h:7280
int Radar_calc_bright_dist_timer
Definition: radarsetup.cpp:80
Visible but not fully.
Definition: radarsetup.h:91
ubyte g
Definition: radarsetup.h:30
#define MAX_BLIPS
Definition: radarsetup.h:49
int rad
Definition: radarsetup.h:35
Definition: pstypes.h:88
float radar_projection_size
Definition: radarsetup.h:42
Definition: 2d.h:95
#define MAX_RADAR_LEVELS
Definition: radarsetup.h:52
int Small_blip_offset_x
Definition: radarsetup.h:121
int Radar_radius[2]
Definition: radarsetup.h:105
int Radar_death_timer
Definition: radarsetup.h:116
void initBlipRadius(int normal, int target)
Definition: radarsetup.cpp:398
virtual void render(float frametime)
Definition: radarsetup.cpp:422
int See_all
Definition: radarsetup.cpp:84
object * objp
Definition: lua.cpp:3105
color * blip_color
Definition: radarsetup.h:37
Definition: hud.h:201
blip Blips[MAX_BLIPS]
Definition: radarsetup.cpp:76
GLdouble GLdouble GLdouble r
Definition: Glext.h:5337
RadarVisibility
Definition: radarsetup.h:87
int radar_image_2d
Definition: radarsetup.h:39
void radar_mission_init()
Definition: radarsetup.cpp:338
GLboolean GLboolean g
Definition: Glext.h:5781
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
int Radar_static_looping
Definition: radarsetup.cpp:34
virtual void initialize()
Definition: radarsetup.cpp:430
int radar_image_size
Definition: radarsetup.h:41
void initRadius(int w, int h)
Definition: radarsetup.cpp:392
char Small_blip_string[2]
Definition: radarsetup.h:126
void initDistanceLongOffsets(int x, int y)
Definition: radarsetup.cpp:410
int Radar_flicker_timer[NUM_FLICKER_TIMERS]
Definition: radarsetup.h:118
#define RR_MAX_RANGES
Definition: hudconfig.h:28
float Radar_bright_range
Definition: radarsetup.cpp:79
void drawRange()
Definition: radarsetup.cpp:467
object * objp
Definition: radarsetup.h:45
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
unsigned char ubyte
Definition: pstypes.h:62
Definition: object.h:141
float dist
Definition: radarsetup.h:44
int Small_blip_offset_y
Definition: radarsetup.h:122
rcol Radar_color_rgb[MAX_RADAR_COLORS][MAX_RADAR_LEVELS]
Definition: radarsetup.cpp:36
GLboolean GLboolean GLboolean b
Definition: Glext.h:5781
blip Blip_dim_list[MAX_BLIP_TYPES]
Definition: radarsetup.cpp:74
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
void radar_frame_init()
Definition: radarsetup.cpp:365
GLenum target
Definition: Glext.h:6872
ubyte r
Definition: radarsetup.h:30
struct blip blip
blip * next
Definition: radarsetup.h:34
RadarVisibility radar_is_visible(object *objp)
Return if the specified object is visible on the radar.
Definition: radarsetup.cpp:498
ubyte b
Definition: radarsetup.h:30
int Radar_static_next
Definition: radarsetup.h:114
void initDistanceInfinityOffsets(int x, int y)
Definition: radarsetup.cpp:416
void initDistanceShortOffsets(int x, int y)
Definition: radarsetup.cpp:404
int Large_blip_offset_y
Definition: radarsetup.h:124
int flags
Definition: radarsetup.h:36
int Radar_avail_prev_frame
Definition: radarsetup.h:115
int Radar_flicker_on[NUM_FLICKER_TIMERS]
Definition: radarsetup.h:119
blip * prev
Definition: radarsetup.h:34
#define NUM_FLICKER_TIMERS
Definition: radarsetup.h:25
int Radar_static_playing
Definition: radarsetup.h:113
struct rcol rcol
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 MAX_RADAR_COLORS
Definition: radarsetup.h:51
int N_blips
Definition: radarsetup.cpp:77
ubyte Radar_infinity_icon
Definition: radarsetup.h:128