1 /* 2 * Created by Olivier "LuaPineapple" Hamel for the Freespace 2 Source Code Project. 3 * You may not sell or otherwise commercially exploit the source or things you 4 * create based on the source. 5 * 6 */ 7 8 9 #ifndef _RADAR_DRADIS_H 10 #define _RADAR_DRADIS_H 11 12 #include "globalincs/pstypes.h" 13 #include "radar/radarsetup.h" 14 15 extern int Radar_static_looping; 16 17 class object; 18 struct blip; 19 struct color; 20 21 class HudGaugeRadarDradis: public HudGaugeRadar 22 { 23 // bitmap IDs of the textures used to render DRADIS 24 int xy_plane; 25 int xz_yz_plane; 26 int sweep_plane; 27 int target_brackets; 28 int unknown_contact_icon; 29 30 float sweep_duration; // in seconds 31 float sweep_percent; 32 33 matrix view_perturb; 34 vec3d Orb_eye_position; 35 36 vec3d fx_guides0_0; 37 vec3d fx_guides0_1; 38 39 vec3d fx_guides1_0; 40 vec3d fx_guides1_1; 41 42 vec3d fx_guides2_0; 43 vec3d fx_guides2_1; 44 45 vec3d sweep_normal_x; 46 vec3d sweep_normal_y; 47 vec3d sweep_normal_z; 48 49 float scale; 50 51 bool sub_y_clip; 52 53 int loop_sound_handle; 54 int m_loop_snd; 55 float loop_sound_volume; 56 57 int arrival_beep_snd; 58 int departure_beep_snd; 59 60 int m_stealth_arrival_snd; 61 int stealth_departure_snd; 62 63 int arrival_beep_delay; 64 int departure_beep_delay; 65 66 int arrival_beep_next_check; 67 int departure_beep_next_check; 68 protected: 69 bool shouldDoSounds(); 70 public: 71 HudGaugeRadarDradis(); 72 void initBitmaps(char* fname_xy, char* fname_xz_yz, char* fname_sweep, char* fname_target_brackets, char* fname_unknown); 73 void initSound(int loop_snd, float loop_sound_volume, int arrival_snd, int departue_snd, int stealth_arrival_snd, int stealth_departue_snd, float arrival_delay, float departure_delay); 74 75 void blipDrawDistorted(blip *b, vec3d *pos, float alpha); 76 void blipDrawFlicker(blip *b, vec3d *pos, float alpha); 77 void drawBlips(int blip_type, int bright, int distort); 78 void drawBlipsSorted(int distort); 79 void drawContact(vec3d *pnt, int idx, int clr_idx, float dist, float alpha, float scale); 80 void drawContactImage(vec3d *pnt, int rad, int idx, int clr_idx, float mult); 81 void drawSweeps(); 82 void drawCrosshairs( vec3d pnt ); 83 void doneDrawing(); 84 void doneDrawingHtl(); 85 void drawOutlines(); 86 void drawOutlinesHtl(); 87 void setupViewHtl(); 88 int calcAlpha(vec3d* pt); 89 void render(float frametime); 90 void pageIn(); 91 void plotBlip(blip* b, vec3d *pos, float *alpha); 92 93 virtual void onFrame(float frametime); 94 virtual void initialize(); 95 96 // Sound specific functions 97 void doLoopSnd(); 98 void doBeeps(); 99 }; 100 101 #endif 102 103