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 __HUDWINGMAN_STATUS_H__ 13 #define __HUDWINGMAN_STATUS_H__ 14 15 #include "hud/hud.h" 16 17 struct wing; 18 class ship; 19 class p_object; 20 21 void hud_init_wingman_status_gauge(); 22 void hud_wingman_status_update(); 23 void hud_wingman_status_init_flash(); 24 void hud_set_wingman_status_dead(int wing_index, int wing_pos); 25 void hud_set_wingman_status_departed(int wing_index, int wing_pos); 26 void hud_set_wingman_status_alive( int wing_index, int wing_pos); 27 void hud_set_wingman_status_none( int wing_index, int wing_pos); 28 void hud_wingman_status_start_flash(int wing_index, int wing_pos); 29 void hud_wingman_status_set_index(wing *wingp, ship *shipp, p_object *pobjp); 30 31 class HudGaugeWingmanStatus: public HudGauge 32 { 33 protected: 34 hud_frames Wingman_status_left; 35 hud_frames Wingman_status_middle; 36 hud_frames Wingman_status_right; 37 hud_frames Wingman_status_dots; 38 39 int header_offsets[2]; 40 bool fixed_header_position; 41 int left_frame_end_x; 42 int right_frame_start_offset; 43 44 int actual_origin[2]; 45 int single_wing_offsets[2]; 46 int multiple_wing_offsets[2]; 47 int wing_width; 48 int wing_name_offsets[2]; 49 50 enum {GROW_LEFT, GROW_RIGHT, GROW_DOWN}; 51 int grow_mode; 52 53 int wingmate_offsets[MAX_SHIPS_PER_WING][2]; 54 55 int next_flash[MAX_SQUADRON_WINGS][MAX_SHIPS_PER_WING]; 56 int flash_status; 57 public: 58 HudGaugeWingmanStatus(); 59 void initBitmaps(char *fname_left, char *fname_middle, char *fname_right, char *fname_dots); 60 void initHeaderOffsets(int x, int y); 61 void initFixedHeaderPosition(bool fixed); 62 void initLeftFrameEndX(int x); 63 void initSingleWingOffsets(int x, int y); 64 void initMultipleWingOffsets(int x, int y); 65 void initWingWidth(int w); 66 void initRightBgOffset(int offset); 67 void initWingNameOffsets(int x, int y); 68 void initWingmate1Offsets(int x, int y); 69 void initWingmate2Offsets(int x, int y); 70 void initWingmate3Offsets(int x, int y); 71 void initWingmate4Offsets(int x, int y); 72 void initWingmate5Offsets(int x, int y); 73 void initWingmate6Offsets(int x, int y); 74 void initGrowMode(int mode); 75 void pageIn() override; 76 void initialize() override; 77 void render(float frametime) override; 78 void renderBackground(int num_wings_to_draw); 79 void renderDots(int wing_index, int screen_index, int num_wings_to_draw); 80 void initFlash(); 81 bool maybeFlashStatus(int wing_index, int wing_pos); 82 }; 83 84 #endif 85