1 
2 
3 
4 
5 #ifndef _HUDPARSE_H
6 #define _HUDPARSE_H
7 
8 #include "ai/ai.h"
9 #include "globalincs/globals.h"
10 #include "graphics/2d.h"
11 
12 //Variables
13 extern int Num_custom_gauges;
14 extern float Hud_unit_multiplier;
15 extern float Hud_speed_multiplier;
16 
17 #define NUM_HUD_RETICLE_STYLES	2
18 
19 #define HUD_RETICLE_STYLE_FS1	0
20 #define HUD_RETICLE_STYLE_FS2	1
21 
22 extern int Hud_reticle_style;
23 extern bool Scale_retail_gauges;
24 extern int Force_scaling_above_res_global[2];
25 extern int Hud_font;
26 extern bool Chase_view_only_ex;
27 
28 typedef struct gauge_settings {
29 	int base_res[2];
30 	int font_num;
31 	bool scale_gauge;
32 	int force_scaling_above_res[2];
33 	SCP_vector<int>* ship_idx;
34 	color *use_clr;
35 	float origin[2];
36 	int offset[2];
37 	bool use_coords;
38 	int coords[2];
39 	bool set_position;
40 	bool set_colour;
41 	bool slew;
42 	bool chase_view_only;
43 
gauge_settingsgauge_settings44 	gauge_settings() : font_num(Hud_font), scale_gauge(Scale_retail_gauges), ship_idx(nullptr), use_clr(nullptr), use_coords(false), set_position(true), set_colour(true), slew(false), chase_view_only(Chase_view_only_ex) {
45 		base_res[0] = -1;
46 		base_res[1] = -1;
47 		memcpy(force_scaling_above_res, Force_scaling_above_res_global, sizeof(force_scaling_above_res));
48 		origin[0] = 0.0f;
49 		origin[1] = 0.0f;
50 		offset[0] = 0;
51 		offset[1] = 0;
52 		coords[0] = 0;
53 		coords[1] = 0;
54 	}
55 } gauge_settings;
56 
57 //Functions
58 void hud_positions_init();
59 void set_current_hud();
60 void init_hud();
61 void load_missing_retail_gauges();
62 void check_color(int *colorp);
63 
64 int parse_gauge_type();
65 void load_gauge(int gauge, gauge_settings* settings);
66 
67 #define HUD_OBJECT_CUSTOM				0
68 void load_gauge_custom(gauge_settings* settings);
69 
70 #define HUD_OBJECT_MESSAGES				1
71 void load_gauge_messages(gauge_settings* settings);
72 
73 #define HUD_OBJECT_TRAINING_MESSAGES		2
74 void load_gauge_training_messages(gauge_settings* settings);
75 
76 #define HUD_OBJECT_SUPPORT				3
77 void load_gauge_support(gauge_settings* settings);
78 
79 #define HUD_OBJECT_DAMAGE				4
80 void load_gauge_damage(gauge_settings* settings);
81 
82 #define HUD_OBJECT_WINGMAN_STATUS		5
83 void load_gauge_wingman_status(gauge_settings* settings);
84 
85 #define HUD_OBJECT_AUTO_SPEED			6
86 void load_gauge_auto_speed(gauge_settings* settings);
87 
88 #define HUD_OBJECT_AUTO_TARGET			7
89 void load_gauge_auto_target(gauge_settings* settings);
90 
91 #define HUD_OBJECT_CMEASURES				8
92 void load_gauge_countermeasures(gauge_settings* settings);
93 
94 #define HUD_OBJECT_TALKING_HEAD			9
95 void load_gauge_talking_head(gauge_settings* settings);
96 
97 #define HUD_OBJECT_DIRECTIVES			10
98 void load_gauge_directives(gauge_settings* settings);
99 
100 #define HUD_OBJECT_WEAPONS				11
101 void load_gauge_weapons(gauge_settings* settings);
102 
103 #define HUD_OBJECT_OBJ_NOTIFY			12
104 void load_gauge_objective_notify(gauge_settings* settings);
105 
106 #define HUD_OBJECT_SQUAD_MSG				13
107 void load_gauge_squad_message(gauge_settings* settings);
108 
109 #define HUD_OBJECT_LAG					14
110 void load_gauge_lag(gauge_settings* settings);
111 
112 #define HUD_OBJECT_MINI_SHIELD			15
113 void load_gauge_mini_shields(gauge_settings* settings);
114 
115 #define HUD_OBJECT_PLAYER_SHIELD			16
116 void load_gauge_player_shields(gauge_settings* settings);
117 
118 #define HUD_OBJECT_TARGET_SHIELD			17
119 void load_gauge_target_shields(gauge_settings* settings);
120 
121 #define HUD_OBJECT_ESCORT				18
122 void load_gauge_escort_view(gauge_settings* settings);
123 
124 #define HUD_OBJECT_MISSION_TIME			19
125 void load_gauge_mission_time(gauge_settings* settings);
126 
127 #define HUD_OBJECT_ETS_WEAPONS			20
128 void load_gauge_ets_weapons(gauge_settings* settings);
129 
130 #define HUD_OBJECT_ETS_SHIELDS			21
131 void load_gauge_ets_shields(gauge_settings* settings);
132 
133 #define HUD_OBJECT_ETS_ENGINES			22
134 void load_gauge_ets_engines(gauge_settings* settings);
135 
136 #define HUD_OBJECT_TARGET_MONITOR		23
137 void load_gauge_target_monitor(gauge_settings* settings);
138 
139 #define HUD_OBJECT_EXTRA_TARGET_DATA		24
140 void load_gauge_extra_target_data(gauge_settings* settings);
141 
142 #define HUD_OBJECT_RADAR_STD				25
143 void load_gauge_radar_std(gauge_settings* settings);
144 
145 #define HUD_OBJECT_RADAR_ORB				26
146 void load_gauge_radar_orb(gauge_settings* settings);
147 
148 #define HUD_OBJECT_RADAR_BSG				27
149 void load_gauge_radar_dradis(gauge_settings* settings);
150 
151 #define HUD_OBJECT_AFTERBURNER			28
152 void load_gauge_afterburner(gauge_settings* settings);
153 
154 #define HUD_OBJECT_WEAPON_ENERGY			29
155 void load_gauge_weapon_energy(gauge_settings* settings);
156 
157 #define HUD_OBJECT_TEXT_WARNINGS			30
158 void load_gauge_text_warnings(gauge_settings* settings);
159 
160 #define HUD_OBJECT_CENTER_RETICLE		31
161 void load_gauge_center_reticle(gauge_settings* settings);
162 
163 #define HUD_OBJECT_THROTTLE				32
164 void load_gauge_throttle(gauge_settings* settings);
165 
166 #define HUD_OBJECT_THREAT				33
167 void load_gauge_threat_indicator(gauge_settings* settings);
168 
169 #define HUD_OBJECT_LEAD					34
170 void load_gauge_lead(gauge_settings* settings);
171 
172 #define HUD_OBJECT_LEAD_SIGHT			35
173 void load_gauge_lead_sight(gauge_settings* settings);
174 
175 #define HUD_OBJECT_LOCK					36
176 void load_gauge_lock(gauge_settings* settings);
177 
178 #define HUD_OBJECT_WEAPON_LINKING		37
179 void load_gauge_weapon_linking(gauge_settings* settings);
180 
181 #define HUD_OBJECT_MULTI_MSG				38
182 void load_gauge_multi_msg(gauge_settings* settings);
183 
184 #define HUD_OBJECT_VOICE_STATUS			39
185 void load_gauge_voice_status(gauge_settings* settings);
186 
187 #define HUD_OBJECT_PING					40
188 void load_gauge_ping(gauge_settings* settings);
189 
190 #define HUD_OBJECT_SUPERNOVA				41
191 void load_gauge_supernova(gauge_settings* settings);
192 
193 #define HUD_OBJECT_OFFSCREEN				42
194 void load_gauge_offscreen(gauge_settings* settings);
195 
196 #define HUD_OBJECT_BRACKETS				43
197 void load_gauge_brackets(gauge_settings* settings);
198 
199 #define HUD_OBJECT_ORIENTATION_TEE		44
200 void load_gauge_orientation_tee(gauge_settings* settings);
201 
202 #define HUD_OBJECT_HOSTILE_TRI			45
203 void load_gauge_hostile_tri(gauge_settings* settings);
204 
205 #define HUD_OBJECT_TARGET_TRI			46
206 void load_gauge_target_tri(gauge_settings* settings);
207 
208 #define HUD_OBJECT_MISSILE_TRI			47
209 void load_gauge_missile_tri(gauge_settings* settings);
210 
211 #define HUD_OBJECT_KILLS				48
212 void load_gauge_kills(gauge_settings* settings);
213 
214 #define HUD_OBJECT_FIXED_MESSAGES		49
215 void load_gauge_fixed_messages(gauge_settings* settings);
216 
217 #define HUD_OBJECT_ETS_RETAIL			50
218 void load_gauge_ets_retail(gauge_settings* settings);
219 
220 #define HUD_OBJECT_FLIGHT_PATH			51
221 void load_gauge_flight_path(gauge_settings* settings);
222 
223 #define HUD_OBJECT_WARHEAD_COUNT		52
224 void load_gauge_warhead_count(gauge_settings* settings);
225 
226 #define HUD_OBJECT_HARDPOINTS			53
227 void load_gauge_hardpoints(gauge_settings* settings);
228 
229 #define HUD_OBJECT_PRIMARY_WEAPONS		54
230 void load_gauge_primary_weapons(gauge_settings* settings);
231 
232 #define HUD_OBJECT_SECONDARY_WEAPONS	55
233 void load_gauge_secondary_weapons(gauge_settings* settings);
234 
235 #define HUD_OBJECT_SCRIPTING 56
236 void load_gauge_scripting(gauge_settings* settings);
237 
238 #endif // _HUDPARSE_H
239