143 static int Last_target_index;
257 if (Escort_ships[index].escort_show_bright)
308 int y =
position[1] + list_start_offsets[1];
351 float shields, integrity;
352 int screen_integrity,
offset;
387 screen_integrity =
fl2i(integrity*100 + 0.5
f);
389 if ( screen_integrity < 100 ) {
391 if ( screen_integrity == 0 ) {
392 if ( integrity > 0 ) {
393 screen_integrity = 1;
406 int hull_integrity = 100;
438 if(hull_integrity < 0){
472 Last_target_index = -1;
488 if(clear_flags && (Escort_ships[i].objnum >= 0) && (
Objects[Escort_ships[i].objnum].
type ==
OBJ_SHIP) && (
Objects[Escort_ships[i].objnum].instance >= 0)){
492 Escort_ships[
i].
np_id = -1;
562 mprintf((
"exceeded max ships in big escort list\n"));
569 escorts[*num_escorts].
objnum = -1;
571 escorts[*num_escorts].
priority = -1;
595 mprintf((
"exceeded max ships in big escort list\n"));
636 escorts[*num_escorts].
np_id = -1;
653 int num_escorts, num_complete_escorts;
665 num_escorts = num_complete_escorts;
690 int i, j, top_complete_escorts;
708 valid_hit_info[
i] = 0;
712 top_complete_escorts = num_complete_escorts;
713 if (top_complete_escorts > Max_escort_ships) {
719 for (i=0; i<top_complete_escorts; i++) {
721 if (Escort_ships[j].obj_signature == complete_escorts[i].obj_signature) {
722 complete_escorts[
i] = Escort_ships[j];
723 valid_hit_info[
i] = 1;
730 for (i=0; i<top_complete_escorts; i++) {
731 Escort_ships[
i] = complete_escorts[
i];
733 int objnum = Escort_ships[
i].
objnum;
738 if ( !valid_hit_info[i] ) {
757 int i,
count, num_complete_escorts;
767 if ( i != dead_index ) {
768 bakup_arr[count++] = Escort_ships[
i];
772 for ( i = 0; i <
count; i++ ) {
773 Escort_ships[
i] = bakup_arr[
i];
777 Assert(Num_escort_ships >= 0);
805 if ( np_index < 0 ) {
814 int objnum = Escort_ships[
i].
objnum;
852 int num_complete_escorts,
idx, found;
865 for (idx=0; idx<num_complete_escorts; idx++) {
866 if (complete_escorts[idx].obj_signature ==
Objects[objnum].signature) {
874 complete_escorts[num_complete_escorts].
objnum = objnum;
884 num_complete_escorts++;
898 if (Escort_ships[idx].objnum == objnum) {
932 if ( !supress_feedback ) {
940 if ( Escort_ships[i].obj_signature ==
Objects[objnum].signature ) {
970 if ( Escort_ships[i].obj_signature ==
Objects[objnum].signature ) {
997 if ( Escort_ships[
i].objnum ==
OBJ_INDEX(objp) ) {
1015 Last_target_index++;
1017 Last_target_index = 0;
1020 objnum = Escort_ships[Last_target_index].
objnum;
1034 int escort_objnum, escort_sig;
1042 if ( escort_objnum < 0 ) {
1047 if (
Objects[escort_objnum].signature != escort_sig ) {
1065 if(Escort_ships[idx].np_id ==
id){
1085 if(Escort_ships[idx].np_id ==
id){
void hud_get_target_strength(object *objp, float *shields, float *integrity)
void hud_escort_update_list()
hud_frames Escort_gauges[NUM_ESCORT_FRAMES]
void initShipStatusOffsets(int x, int y)
int timestamp(int delta_ms)
void hud_gauge_popup_start(int gauge_index, int time)
Start a gauge to pop-up.
void initBitmaps(char *fname_top, char *fname_middle, char *fname_bottom)
#define HUD_OBJECT_ESCORT
void hud_remove_ship_from_escort_index(int dead_index, int objnum)
GLfloat GLfloat GLfloat GLfloat h
void hud_escort_add_player(short id)
SCP_vector< game_snd > Snds
void renderIcon(int x, int y, int index)
int hud_escort_num_ships_on_list()
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)
void hud_create_complete_escort_list(escort_info *escorts, int *num_escorts)
#define MULTI_STANDALONE(np)
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_escort_ship_hit(object *objp, int quadrant)
void initShipNameMaxWidth(int w)
int find_player_id(short player_id)
void initEntryHeight(int h)
#define SF2_FRIENDLY_STEALTH_INVIS
#define END_OF_LIST(head)
void initShipNameOffsets(int x, int y)
#define SHIELD_FLASH_INTERVAL
void gr_set_color_fast(color *dst)
void HUD_sourced_printf(int source, const char *format,...)
GLenum GLuint GLenum GLsizei const GLchar * buf
int hud_escort_return_objnum(int index)
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.
void initHeaderTextOffsets(int x, int y)
int ship_integrity_offsets[2]
typedef int(SCP_EXT_CALLCONV *SCPDLL_PFVERSION)(SCPDLL_Version *)
void initShipIntegrityOffsets(int x, int y)
float ship_max_hull_strength
int ship_subsys_disrupted(ship_subsys *ss)
void initHeaderText(char *text)
void renderIconDogfight(int x, int y, int index)
void initRightAlignNames(bool align)
#define SF_HIDDEN_FROM_SENSORS
void hud_add_ship_to_escort(int objnum, int supress_feedback)
#define MULTI_OBSERVER(np)
#define HUD_SOURCE_HIDDEN
void hud_escort_view_toggle()
void hud_escort_cull_list()
int snd_play(game_snd *gs, float pan, float vol_scale, int priority, bool is_voice_msg)
#define SHIELD_HIT_DURATION
void insertion_sort(void *array_base, size_t array_size, size_t element_size, int(*fncompare)(const void *, const void *))
void renderString(int x, int y, const char *str)
object Objects[MAX_OBJECTS]
GLint GLint GLint GLint GLint x
const char * XSTR(const char *str, int index)
target fail sound (i.e. press targeting key, but nothing happens)
bool end_string_at_first_hash_symbol(char *src)
void hud_escort_remove_player(short id)
int setGaugeColorEscort(int index, int team)
struct escort_info escort_info
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.
#define MULTI_CONNECTED(np)
void hud_remove_ship_from_escort(int objnum)
#define MAX_COMPLETE_ESCORT_LIST
int gr_force_fit_string(char *str, int max_str, int max_width)
char header_text[NAME_LENGTH]
void hud_setup_escort_list(int level)
void hud_escort_target_next()
int escort_hit_next_flash
#define timestamp_elapsed(stamp)
#define OF_SHOULD_BE_DEAD
escort_info Escort_ships[MAX_COMPLETE_ESCORT_LIST]
void renderPrintf(int x, int y, const char *format,...)
int ship_status_offsets[2]
#define NUM_ESCORT_FRAMES
void merge_escort_lists(escort_info *complete_escorts, int num_complete_escorts)
void hud_restore_subsystem_target(ship *shipp)
void initListStartOffsets(int x, int y)
void hud_escort_clear_all(bool clear_flags)
int list_start_offsets[2]
int escort_compare_func(const void *e1, const void *e2)
int header_text_offsets[2]
net_player Net_players[MAX_PLAYERS]
virtual void render(float frametime)
void hud_add_remove_ship_escort(int objnum, int supress_feedback)
void initBottomBgOffset(int offset)
char ship_name[NAME_LENGTH]
void initEntryStaggerWidth(int w)
void renderBitmap(int x, int y)