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 _RADAR_H
13 #define _RADAR_H
14 
15 #include "radar/radarsetup.h"
16 
17 class object;
18 struct blip;
19 struct color;
20 
21 extern void radar_init_std();
22 extern void radar_plot_object_std( object *objp );
23 extern void radar_frame_init_std();
24 extern void radar_mission_init_std();
25 extern void radar_frame_render_std(float frametime);
26 
27 // observer hud rendering code uses this function
28 void radar_draw_blips_sorted_std(int distort);
29 void radar_draw_range_std();
30 void radar_blit_gauge_std();
31 void radar_stuff_blip_info_std(object *objp, int is_bright, color **blip_color, int *blip_type);
32 void radar_null_nblips_std();
33 void radar_draw_circle_std( int x, int y, int rad );
34 void radar_blip_draw_distorted_std(blip *b);
35 void radar_blip_draw_flicker_std(blip *b);
36 void radar_draw_image_std( int x, int y, int rad, int idx, int size);
37 
38 class HudGaugeRadarStd: public HudGaugeRadar
39 {
40 	hud_frames Radar_gauge;
41 
42 	int current_target_x, current_target_y;
43 	color radar_crosshairs;
44 
45 	// formerly parts of Current_radar_global
46 	float Radar_center_offsets[2];
47 
48 protected:
49 	/**
50 	 * @brief Clamps and scales the blip to be within the plot area
51 	 * @param[in] b The blip coordinates (only x and y are nonzero)
52 	 */
53 	virtual void clampBlip(vec3d* b);
54 public:
55 	HudGaugeRadarStd();
56 	void initCenterOffsets(float x, float y);
57 	void initBitmaps(char *fname);
58 
59 	void blipDrawDistorted(blip *b, int x, int y);
60 	void blipDrawFlicker(blip *b, int x, int y);
61 	void blitGauge();
62 	void drawBlips(int blip_type, int bright, int distort);
63 	void drawBlipsSorted(int distort);
64 	void drawContactCircle( int x, int y, int rad );
65 	void drawContactImage( int x, int y, int rad, int idx, int clr_idx, int size );
66 	void drawCrosshairs(int x, int y);
67 	void render(float frametime) override;
68 	void pageIn() override;
69 	void plotBlip(blip *b, int *x, int *y);
70 	void plotObject( object *objp );
71 };
72 
73 #endif
74 
75