56 static int Target_static_next;
57 static int Target_static_playing;
77 #define NUM_TBOX_COORDS 11 // keep up to date
78 #define TBOX_BACKGROUND 0
86 #define TBOX_EXTRA_ORDERS 8
87 #define TBOX_EXTRA_TIME 9
88 #define TBOX_EXTRA_DOCK 10
113 static int Current_ts;
122 if ( strstr(outstr,
"communication") ) {
123 strcpy(outstr,
"Komm");
124 }
else if ( !
stricmp(outstr,
"weapons") ) {
125 strcpy(outstr,
"Waffen");
126 }
else if ( strstr(outstr,
"engine") || strstr(outstr,
"Engine")) {
127 strcpy(outstr,
"Antrieb");
128 }
else if ( !
stricmp(outstr,
"sensors") ) {
129 strcpy(outstr,
"Sensoren");
130 }
else if ( strstr(outstr,
"navigat") ) {
131 strcpy(outstr,
"Nav");
132 }
else if ( strstr(outstr,
"fighterbay") || strstr(outstr,
"Fighterbay") ) {
133 strcpy(outstr,
"J\x84gerhangar");
134 }
else if ( strstr(outstr,
"missile") ) {
135 strcpy(outstr,
"Raketenwerfer");
136 }
else if ( strstr(outstr,
"laser") || strstr(outstr,
"turret") ) {
137 strcpy(outstr,
"Gesch\x81tzturm");
138 }
else if ( strstr(outstr,
"Command Tower") || strstr(outstr,
"Bridge") ) {
139 strcpy(outstr,
"Br\x81""cke");
140 }
else if ( strstr(outstr,
"Barracks") ) {
141 strcpy(outstr,
"Quartiere");
142 }
else if ( strstr(outstr,
"Reactor") ) {
143 strcpy(outstr,
"Reaktor");
144 }
else if ( strstr(outstr,
"RadarDish") ) {
145 strcpy(outstr,
"Radarantenne");
146 }
else if (!
stricmp(outstr,
"Gas Collector")) {
147 strcpy(outstr,
"Sammler");
150 if ( strstr(outstr,
"communication") ) {
151 strcpy(outstr,
"comm");
152 }
else if ( !
stricmp(outstr,
"weapons") ) {
153 strcpy(outstr,
"armes");
154 }
else if ( strstr(outstr,
"engine") ) {
155 strcpy(outstr,
"moteur");
156 }
else if ( !
stricmp(outstr,
"sensors") ) {
157 strcpy(outstr,
"detecteurs");
158 }
else if ( strstr(outstr,
"navi") ) {
159 strcpy(outstr,
"nav");
160 }
else if ( strstr(outstr,
"missile") ) {
161 strcpy(outstr,
"lanceur de missiles");
162 }
else if ( strstr(outstr,
"fighter") ) {
163 strcpy(outstr,
"baie de chasse");
164 }
else if ( strstr(outstr,
"laser") || strstr(outstr,
"turret") || strstr(outstr,
"missile") ) {
165 strcpy(outstr,
"tourelle");
168 if ( strstr(outstr,
"communication") ) {
169 strcpy(outstr,
"komunikacja");
170 }
else if ( !
stricmp(outstr,
"weapons") ) {
171 strcpy(outstr,
"uzbrojenie");
172 }
else if ( strstr(outstr,
"engine") || strstr(outstr,
"Engine")) {
173 strcpy(outstr,
"silnik");
174 }
else if ( !
stricmp(outstr,
"sensors") ) {
175 strcpy(outstr,
"sensory");
176 }
else if ( strstr(outstr,
"navigat") ) {
177 strcpy(outstr,
"nawigacja");
178 }
else if ( strstr(outstr,
"fighterbay") || strstr(outstr,
"Fighterbay") ) {
179 strcpy(outstr,
"dok my\x9Cliw.");
180 }
else if ( strstr(outstr,
"missile") ) {
181 strcpy(outstr,
"wie\xBF. rakiet.");
182 }
else if ( strstr(outstr,
"laser") || strstr(outstr,
"turret") ) {
183 strcpy(outstr,
"wie\xBFyczka");
184 }
else if ( strstr(outstr,
"Command Tower") || strstr(outstr,
"Bridge") ) {
185 strcpy(outstr,
"mostek");
186 }
else if ( strstr(outstr,
"Barracks") ) {
187 strcpy(outstr,
"koszary");
188 }
else if ( strstr(outstr,
"Reactor") ) {
189 strcpy(outstr,
"reaktor");
190 }
else if ( strstr(outstr,
"RadarDish") || strstr(outstr,
"Radar Dish") ) {
191 strcpy(outstr,
"antena radaru");
192 }
else if (!
stricmp(outstr,
"Gas Collector")) {
193 strcpy(outstr,
"zbieracz gazu");
196 if (strstr(outstr,
XSTR(
"communication", 333))) {
197 strcpy(outstr,
XSTR(
"comm", 334));
198 }
else if (strstr(outstr,
XSTR(
"navigation", 335))) {
199 strcpy(outstr,
XSTR(
"nav", 336));
200 }
else if (strstr(outstr,
"gas collector")) {
201 strcpy(outstr,
"collector");
209 Use_subsys_name_offsets(
false),
210 Use_subsys_integrity_offsets(
false),
211 Use_disabled_status_offsets(
false)
217 Viewport_offsets[0] =
x;
218 Viewport_offsets[1] =
y;
229 Integrity_bar_offsets[0] =
x;
230 Integrity_bar_offsets[1] =
y;
240 Status_offsets[0] =
x;
241 Status_offsets[1] =
y;
252 Class_offsets[0] =
x;
253 Class_offsets[1] =
y;
264 Speed_offsets[0] =
x;
265 Speed_offsets[1] =
y;
270 Cargo_string_offsets[0] =
x;
271 Cargo_string_offsets[1] =
y;
282 Cargo_scan_start_offsets[0] =
x;
283 Cargo_scan_start_offsets[1] =
y;
294 Subsys_name_offsets[0] =
x;
295 Subsys_name_offsets[1] =
y;
296 Use_subsys_name_offsets = activate;
301 Subsys_integrity_offsets[0] =
x;
302 Subsys_integrity_offsets[1] =
y;
303 Use_subsys_integrity_offsets = activate;
308 Disabled_status_offsets[0] =
x;
309 Disabled_status_offsets[1] =
y;
310 Use_disabled_status_offsets = activate;
315 Desaturated = desaturate;
330 if ( strlen(fname_monitor_mask) > 0 ) {
333 if ( Monitor_mask < 0 ) {
334 Warning(
LOCATION,
"Cannot load bitmap hud mask: %s\n", fname_monitor_mask);
338 strcpy_s(static_fname, fname_static);
354 Next_flash_timers[
index] = 1;
355 flash_flags &= ~(1<<
index);
365 if ( Target_static_playing )
375 if ( Monitor_mask >= 0 ) {
389 switch ( target_objp->
type ) {
415 if ( Target_static_playing ) {
459 if(force_obj_num == -1)
494 if ( clip_h <= integrity_bar_h ) {
507 int clip_width = Viewport_w;
508 int clip_height = Viewport_h;
534 vec3d orient_vec, up_vector;
558 up_vector = camera_orient.
vec.uvec;
614 if ( Monitor_mask >= 0 ) {
646 if ( Monitor_mask >= 0 ) {
657 save_pos = target_objp->
pos;
658 target_objp->
pos = obj_pos;
660 target_objp->
pos = save_pos;
662 if ( subsys_in_view != -1 ) {
672 if ( subsys_in_view ) {
699 vec3d orient_vec, up_vector;
710 factor = 2*target_objp->
radius;
720 up_vector = camera_orient.
vec.uvec;
758 if ( Monitor_mask >= 0 ) {
772 if ( Monitor_mask >= 0 ) {
802 vec3d orient_vec, up_vector;
803 vec3d projection_vec;
806 object *viewer_obj, *viewed_obj;
807 int *replacement_textures = NULL;
808 int target_team, is_homing, is_player_missile, missile_view, viewed_model_num, hud_target_lod,
w,
h;
813 target_team =
obj_team(target_objp);
825 is_player_missile =
FALSE;
827 is_player_missile =
TRUE;
831 ship *homing_shipp = NULL;
835 viewed_obj = target_objp;
836 missile_view =
FALSE;
837 viewed_model_num = target_wip->
model_num;
844 viewer_obj = target_objp;
847 viewed_model_num = homing_sip->
model_num;
856 if (missile_view ==
TRUE) {
861 if ( missile_view ==
FALSE )
862 factor = 2*target_objp->
radius;
871 camera_orient = viewer_obj->
orient;
874 up_vector = camera_orient.
vec.uvec;
876 if (missile_view ==
FALSE)
883 if (missile_view ==
FALSE) {
896 if (missile_view ==
FALSE) {
954 if (hud_target_lod >= 0) {
962 if ( Monitor_mask >= 0 ) {
971 if (missile_view ==
TRUE) {
982 if (missile_view ==
FALSE ) {
1002 if (missile_view ==
TRUE) {
1006 if ( Monitor_mask >= 0 ) {
1034 vec3d unit_vec, component_vec;
1044 sprintf(outstr,
NOX(
"impact: %.1f sec"), dist/speed);
1062 vec3d orient_vec, up_vector;
1063 float time_to_impact,
factor;
1078 factor = 2*target_objp->
radius;
1088 up_vector = camera_orient.
vec.uvec;
1106 if (time_to_impact>=0)
1118 if (time_to_impact>=0)
1132 if ( Monitor_mask >= 0 ) {
1136 if ( Desaturated ) {
1145 if ( Monitor_mask >= 0 ) {
1172 if ( time_to_impact >= 0.0
f ) {
1187 vec3d orient_vec, up_vector;
1193 if(jnp->GetSCPObject() != target_objp)
1196 if ( jnp->IsHidden() ) {
1206 factor = target_objp->
radius*4.0f;
1216 up_vector = camera_orient.
vec.uvec;
1225 if ( Monitor_mask >= 0 ) {
1229 jnp->Render( &obj_pos );
1231 if ( Monitor_mask >= 0 ) {
1314 flash_flags ^= (1<<
index);
1317 if ( flash_flags & (1<<index) ) {
1368 bracket_offsets[0] =
x;
1369 bracket_offsets[1] =
y;
1374 dock_offsets[0] =
x;
1375 dock_offsets[1] =
y;
1385 time_offsets[0] =
x;
1386 time_offsets[1] =
y;
1391 order_offsets[0] =
x;
1392 order_offsets[1] =
y;
1397 order_max_w =
width;
1418 char outstr[256], tmpbuf[256];
1421 int extra_data_shown=0;
1429 if ( Target_static_playing )
1432 object *target_objp;
1444 if ( not_training) {
1482 if (dock_count == 1)
1490 sprintf(outstr,
XSTR(
"Docked: %d objects", 1623), dock_count);
1500 if ( extra_data_shown ) {
1509 flash_flags =
false;
1532 flash_flags =
false;
1573 sprintf(outstr,
"%s",
XSTR(
"Missile lnchr", 1569));
1583 sprintf(outstr,
"%s",
XSTR(
"Missile lnchr", 1569));
1587 sprintf(outstr,
"%s",
XSTR(
"Laser turret", 1568));
1591 if (flags == 0 && flags2 == 0) {
1595 static bool Turret_illegal_subtype_warned =
false;
1596 if (!Turret_illegal_subtype_warned) {
1597 Turret_illegal_subtype_warned =
true;
1598 Warning(
LOCATION,
"This turret has an illegal subtype! Trace out and fix!");
1616 int w,
h, screen_integrity = 1;
1620 float ship_integrity, shield_strength;
1648 if (*outstr_callsign)
1649 sprintf(&outstr_name[strlen(outstr_name)],
" (%s)", outstr_callsign);
1663 ship_integrity = 1.0f;
1664 shield_strength = 1.0f;
1668 shield_strength *= 100.0f;
1669 ship_integrity *= 100.0f;
1671 screen_integrity =
fl2i(ship_integrity+0.5
f);
1672 if ( screen_integrity == 0 ) {
1673 if ( ship_integrity > 0 ) {
1674 screen_integrity = 1;
1678 sprintf(outstr,
XSTR(
"%d%%", 341), screen_integrity);
1693 screen_integrity =
fl2i(shield_strength+0.5
f);
1695 if ( screen_integrity < 0 ) {
1696 screen_integrity = 0;
1699 if ( screen_integrity == 0 ) {
1700 if ( shield_strength > 0 ) {
1701 screen_integrity = 1;
1716 char linebreak[2] =
"|";
1717 int n_linebreaks = 0;
1718 p_line = strpbrk(outstr,linebreak);
1721 while (p_line != NULL) {
1723 p_line = strpbrk(p_line+1,linebreak);
1726 int subsys_name_pos_x;
1727 int subsys_name_pos_y;
1729 if ( Use_subsys_name_offsets ) {
1730 subsys_name_pos_x =
position[0] + Subsys_name_offsets[0];
1731 subsys_name_pos_y =
position[1] + Subsys_name_offsets[1];
1733 subsys_name_pos_x =
position[0] + Viewport_offsets[0] + 2;
1734 subsys_name_pos_y =
position[1] + Viewport_offsets[1] + Viewport_h;
1738 p_line = strtok(outstr,linebreak);
1739 while (p_line != NULL) {
1740 renderPrintf(subsys_name_pos_x, subsys_name_pos_y-h-((h+1)*n_linebreaks), p_line);
1741 p_line = strtok(NULL,linebreak);
1746 renderPrintf(subsys_name_pos_x, subsys_name_pos_y-h, outstr);
1749 int subsys_integrity_pos_x;
1750 int subsys_integrity_pos_y;
1752 if ( Use_subsys_integrity_offsets ) {
1753 subsys_integrity_pos_x =
position[0] + Subsys_integrity_offsets[0];
1754 subsys_integrity_pos_y =
position[1] + Subsys_integrity_offsets[1];
1756 subsys_integrity_pos_x =
position[0] + Viewport_offsets[0] + Viewport_w - 1;
1757 subsys_integrity_pos_y =
position[1] + Viewport_offsets[1] + Viewport_h;
1766 sprintf(outstr,
XSTR(
"%d%%", 341),screen_integrity);
1768 renderPrintf(subsys_integrity_pos_x - w, subsys_integrity_pos_y - h,
"%s", outstr);
1783 int disabled_status_pos_x;
1784 int disabled_status_pos_y;
1786 if ( Use_disabled_status_offsets ) {
1787 disabled_status_pos_x =
position[0] + Disabled_status_offsets[0];
1788 disabled_status_pos_y =
position[1] + Disabled_status_offsets[1];
1790 disabled_status_pos_x =
position[0] + Viewport_offsets[0] + Viewport_w/2 - w/2 - 1;
1791 disabled_status_pos_y =
position[1] + Viewport_offsets[1] + Viewport_h - 2*
h;
1794 renderPrintf(disabled_status_pos_x, disabled_status_pos_y,
"%s", outstr);
1811 if (subsys != NULL ) {
1882 x1 =
position[0] + Cargo_scan_start_offsets[0];
1884 x2 = x1 + Cargo_scan_w;
1897 y1 =
position[1] + Cargo_scan_start_offsets[1];
1898 y2 = y1 + Cargo_scan_h;
1914 object *target_objp;
1919 float displayed_target_distance, displayed_target_speed, current_target_distance, current_target_speed;
1930 displayed_target_distance = current_target_distance;
1980 if ( current_target_speed < 0.1
f ) {
1981 current_target_speed = 0.0f;
1984 if ( (current_target_speed == 0.0
f) && is_ship ) {
1987 if ( current_target_speed < 0.1
f ) {
1988 current_target_speed = 0.0f;
1995 displayed_target_speed = current_target_speed;
2023 switch (aip->
mode) {
2048 char target_str[32];
2093 if (Enemy_attacker != NULL)
2125 Enemy_attacker = NULL;
2195 Target_static_next = 0;
2196 Target_static_playing = 0;
2221 Target_static_playing = 0;
2222 Target_static_next = 0;
2224 if ( Target_static_next == 0 )
2225 Target_static_next = 1;
2229 Target_static_playing ^= 1;
2233 if ( Target_static_playing ) {
2256 Assert( targetp != NULL );
2273 if ( Last_ts != -1 && Current_ts != Last_ts ) {
2278 Last_ts = Current_ts;
void hud_get_target_strength(object *objp, float *shields, float *integrity)
virtual void initialize()
int timestamp(int delta_ms)
void submodel_render_immediate(model_render_params *render_info, int model_num, int submodel_num, matrix *orient, vec3d *pos)
struct screen3d::@234::@236 xyw
void get_turret_subsys_name(ship_weapon *swp, char *outstr)
fix team_change_timestamp
void renderBitmapEx(int frame, int x, int y, int w, int h, int sx, int sy)
void initViewportOffsets(int x, int y)
model_subsystem * system_info
weapon Weapons[MAX_WEAPONS]
int primary_bank_weapons[MAX_SHIP_PRIMARY_BANKS]
#define MR_SHOW_OUTLINE_HTL
#define gr_alpha_mask_set
void initDesaturate(bool desaturate)
void hud_targetbox_init_flash_timer(int index)
SCP_string secondary_team_name
char * ship_subsys_get_name(ship_subsys *ss)
float dock_calc_docked_fspeed(object *objp)
GLfloat GLfloat GLfloat GLfloat h
void renderTargetShipInfo(object *target_objp)
void renderTargetAsteroid(object *target_objp)
void renderTargetForeground()
void hud_update_cargo_scan_sound()
int Cmdline_dualscanlines
polymodel * model_get(int model_num)
weapon_info Weapon_info[MAX_WEAPON_TYPES]
int obj_team(object *objp)
SCP_vector< game_snd > Snds
float vm_vec_mag(const vec3d *v)
#define gr_end_view_matrix
void hud_num_make_mono(char *num_str, int font_num)
Convert a number string to use mono-spaced 1 character.
asteroid Asteroids[MAX_ASTEROIDS]
void renderTargetShip(object *target_objp)
#define SENSOR_STR_TARGET_NO_EFFECTS
bool ship_subsys_has_instance_name(ship_subsys *ss)
int hud_anim_render(hud_anim *ha, float frametime, int draw_alpha, int loop, int hold_last, int reverse, int resize_mode, bool mirror)
Render out a frame of the targetbox static animation, based on how much time has elapsed.
void setGaugeColor(int bright_index=-4)
color * iff_get_color_by_team_and_object(int team, int seen_from_team, int is_bright, object *objp)
#define NUM_TBOX_FLASH_TIMERS
void mission_parse_lookup_alt_index(int index, char *out)
void _cdecl void void _cdecl void _cdecl Warning(char *filename, int line, SCP_FORMAT_STRING const char *format,...) SCP_FORMAT_STRING_ARGS(3
void hud_stuff_ship_name(char *ship_name_text, ship *shipp)
int Targetbox_shader_effect
#define ASTEROID_TYPE_SMALL
#define GR_NUM_RESOLUTIONS
#define NETINFO_FLAG_OBSERVER
void hud_init_target_static()
int weapon_recharge_index
void player_stop_cargo_scan_sound()
void renderBitmapColor(int frame, int x, int y)
int bm_get_info(int handle, int *w, int *h, ubyte *flags, int *nframes, int *fps)
Gets info on the bitmap indexed by handle.
void set_flags(uint flags)
struct vec3d::@225::@227 xyz
void hud_targetbox_end_flash(int index)
int maybeFlashElement(int index, int flash_fast=0)
void model_render_immediate(model_render_params *render_info, int model_num, matrix *orient, vec3d *pos, int render, bool sort)
int ship_subsystem_in_sight(object *objp, ship_subsys *subsys, vec3d *eye_pos, vec3d *subsys_pos, int do_facing_check, float *dot_out, vec3d *vec_out)
void hud_cease_targeting()
ai_info Ai_info[MAX_AI_INFO]
void initCargoStringOffsets(int x, int y)
void set_detail_level_lock(int detail_level_lock)
ship_subsys * targeted_subsys
int ship_is_tagged(object *objp)
void gr_set_screen_scale(int w, int h, int zoom_w, int zoom_h, int max_w, int max_h, int center_w, int center_h, bool force_stretch)
void renderLine(int x1, int y1, int x2, int y2)
void gr_set_color_fast(color *dst)
void initIntegrityOffsets(int x, int y)
void initSubsysNameOffsets(int x, int y, bool activate)
void initSubsysIntegrityOffsets(int x, int y, bool activate)
float current_target_distance
GLenum GLuint GLenum GLsizei const GLchar * buf
#define gr_end_proj_matrix
void setClip(int x, int y, int w, int h)
void ship_get_eye(vec3d *eye_pos, matrix *eye_orient, object *obj, bool do_slew, bool from_origin)
SCP_list< CJumpNode > Jump_nodes
char * ship_return_time_to_goal(char *outbuf, ship *sp)
int bm_load_animation(const char *real_filename, int *nframes, int *fps, int *keyframe, int can_drop_frames, int dir_type)
Loads a bitmap sequance so we can draw with it.
#define IS_VEC_NULL_SQ_SAFE(v)
#define HUD_OBJECT_TARGET_MONITOR
iff_info Iff_info[MAX_IFFS]
#define HUD_TARGET_MONITOR
int object_is_docked(object *objp)
#define gr_set_view_matrix
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
int turret_weapon_aggregate_flags(ship_weapon *swp)
int current_target_speed_trend
matrix * vm_vector_2_matrix(matrix *m, const vec3d *fvec, const vec3d *uvec, const vec3d *rvec)
float ship_get_subsystem_strength(ship *shipp, int type)
void vm_vec_add2(vec3d *dest, const vec3d *src)
#define gr_set_proj_matrix
void hud_update_target_static()
struct matrix::@228::@230 vec
#define AIS_STRAFE_POSITION
#define TBOX_FLASH_SUBSYS
void draw_brackets_square_quick(int x1, int y1, int x2, int y2, int thick)
int * ship_replacement_textures
int ship_subsys_disrupted(ship_subsys *ss)
void initStatusOffsets(int x, int y)
void g3_set_view_matrix(const vec3d *view_pos, const matrix *view_matrix, float zoom)
void initBitmaps(char *fname_monitor, char *fname_monitor_mask, char *fname_integrity, char *fname_static)
float get_hull_pct(object *objp)
void model_clear_instance(int model_num)
void renderTargetSetup(vec3d *camera_eye, matrix *camera_orient, float zoom)
int ship_get_SIF(ship *shipp)
ship_subsys * last_subsys_target
void showTargetData(float frametime)
sprintf(buf,"(%f,%f,%f)", v3->xyz.x, v3->xyz.y, v3->xyz.z)
void set_team_color(team_color &clr)
#define IFF_COLOR_MESSAGE
void initDisabledStatusOffsets(int x, int y, bool activate)
void initCargoScanStartOffsets(int x, int y)
ubyte g3_rotate_vertex(vertex *dest, const vec3d *src)
void initHullOffsets(int x, int y)
int engine_recharge_index
int secondary_bank_weapons[MAX_SHIP_SECONDARY_BANKS]
void renderTargetDebris(object *target_objp)
float vm_vec_normalized_dir(vec3d *dest, const vec3d *end, const vec3d *start)
object * dock_get_first_docked_object(object *objp)
float vm_vec_dist(const vec3d *v0, const vec3d *v1)
char * Ai_behavior_names[MAX_AI_BEHAVIORS]
int Cargo_scan_coords[GR_NUM_RESOLUTIONS][4]
void hud_targetbox_truncate_subsys_name(char *outstr)
void renderTargetJumpNode(object *target_objp)
char * Strafe_submode_text[5]
void set_color(color &clr)
int g3_project_vertex(vertex *point)
debris Debris[MAX_DEBRIS_PIECES]
void hud_update_ship_status(object *targetp)
vec3d * vm_vec_unrotate(vec3d *dest, const vec3d *src, const matrix *m)
void renderString(int x, int y, const char *str)
#define IFFF_ORDERS_HIDDEN
int get_subsystem_pos(vec3d *pos, object *objp, ship_subsys *subsysp)
object Objects[MAX_OBJECTS]
GLint GLint GLint GLint GLint x
int Target_window_coords[GR_NUM_RESOLUTIONS][4]
const char * XSTR(const char *str, int index)
void set_replacement_textures(int *textures)
void initFlashTimer(int index)
void initIntegrityHeight(int h)
float Energy_levels[NUM_ENERGY_LEVELS]
void render(float frametime)
bool end_string_at_first_hash_symbol(char *src)
#define ASTEROID_TYPE_MEDIUM
void vm_vec_copy_scale(vec3d *dest, const vec3d *src, float s)
int turret_weapon_aggregate_flags2(ship_weapon *swp)
#define IFFF_ORDERS_SHOWN
float asteroid_time_to_impact(object *asteroid_objp)
float vm_vec_projection_parallel(vec3d *component, const vec3d *src, const vec3d *unit_vec)
void draw_brackets_diamond_quick(int x1, int y1, int x2, int y2)
void hud_anim_init(hud_anim *ha, int sx, int sy, const char *filename)
Initialise the members of the hud_anim struct to default values.
#define gr_set_color_buffer
int dock_count_direct_docked_objects(object *objp)
int Show_target_debug_info
void vm_vec_sub(vec3d *dest, const vec3d *src0, const vec3d *src1)
void initDistOffsets(int x, int y)
#define MISSION_TYPE_TRAINING
color * iff_get_color(int color_index, int is_bright)
float get_shield_pct(object *objp)
float vm_vec_dist_quick(const vec3d *v0, const vec3d *v1)
GLubyte GLubyte GLubyte GLubyte w
int set_target_objnum(ai_info *aip, int objnum)
void bm_page_in_aabitmap(int bitmapnum, int nframes)
Marks a texture as being used for this level, and is anti-aliased.
bool turret_weapon_has_subtype(ship_weapon *swp, int subtype)
#define SUBSYSTEM_SENSORS
int gr_force_fit_string(char *str, int max_str, int max_width)
float Hud_speed_multiplier
void hud_targetbox_start_flash(int index, int duration)
#define HUD_OBJECT_EXTRA_TARGET_DATA
#define ASTEROID_TYPE_LARGE
void gr_get_string_size(int *w, int *h, const char *text, int len=9999)
int snd_play_looping(game_snd *gs, float pan, int start_loop, int stop_loop, float vol_scale, int scriptingUpdateVolume)
void player_maybe_start_cargo_scan_sound()
#define SF2_GLOWMAPS_DISABLED
void initNameOffsets(int x, int y)
char subobj_name[MAX_NAME_LEN]
float vm_vec_copy_normalize(vec3d *dest, const vec3d *src)
SCP_vector< ship_info > Ship_info
void gr_reset_screen_scale()
#define timestamp_elapsed(stamp)
SCP_vector< species_info > Species_info
float Hud_unit_multiplier
int Target_static_looping
int Targetbox_flash_timers[NUM_TBOX_FLASH_TIMERS]
void initSpeedOffsets(int x, int y)
#define TBOX_FLASH_INTERVAL
void renderPrintf(int x, int y, const char *format,...)
float vm_vec_dot(const vec3d *v0, const vec3d *v1)
float Pl_target_integrity
void hud_stuff_ship_class(char *ship_class_text, ship *shipp)
void initViewportSize(int w, int h)
void renderTargetIntegrity(int disabled, int force_obj_num=-1)
char * ship_return_orders(char *outbuf, ship *sp)
int player_inspect_cargo(float frametime, char *outstr)
#define HUD_TARGET_MONITOR_EXTRA_DATA
#define timestamp_rand(a, b)
void set_animated_effect(int effect_num, float timer)
int current_target_dist_trend
void initClassOffsets(int x, int y)
void hud_stuff_ship_callsign(char *ship_callsign_text, ship *shipp)
void _cdecl gr_printf_no_resize(int x, int y, const char *format,...)
#define TBOX_FLASH_STATUS
void hud_targetbox_init_flash()
void hud_targetbox_switch_wireframe_mode()
void set_object_number(int num)
void renderTargetWeapon(object *target_objp)
char filename[FILESPEC_LENGTH]
#define AIS_STRAFE_ATTACK
SCP_vector< asteroid_info > Asteroid_info
void hud_cargo_scan_update(object *targetp, float frametime)
bool ship_subsys_takes_damage(ship_subsys *ss)
void hud_set_iff_color(object *objp, int is_bright)
Will set the color to the IFF color based on the team.
int shield_recharge_index
int hud_targetbox_subsystem_in_view(object *target_objp, int *sx, int *sy)
char ship_name[NAME_LENGTH]
void maybeRenderCargoScan(ship_info *target_sip)
void initCargoScanSize(int w, int h)
void model_set_detail_level(int n)
void hud_save_restore_camera_data(int save)
Called to save and restore the 3D camera settings.
#define g3_start_frame(zbuffer_flag)
float vm_vec_normalize(vec3d *v)
void renderBitmap(int x, int y)