FS2_Open
Open source remastering of the Freespace 2 engine
hudshield.h
Go to the documentation of this file.
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 __FREESPACE_HUDSHIELD_H__
13 #define __FREESPACE_HUDSHIELD_H__
14 
15 #include "globalincs/pstypes.h"
16 #include "hud/hud.h"
17 
18 #define SHIELD_HIT_DURATION 1400 // time a shield quadrant flashes after being hit
19 #define SHIELD_FLASH_INTERVAL 200 // time between shield quadrant flashes
20 
21 typedef struct shield_hit_info
22 {
23  int members;
24  int hull_hit_index; // used to access the members in shield_hit_info that pertain to the hull
25  SCP_vector<int> shield_hit_timers; // timestamps that get set for SHIELD_FLASH_TIME when a quadrant is hit
27  int shield_hit_status; // bitfield, if offset for shield quadrant is set, that means shield is being hit
28  int shield_show_bright; // bitfield, if offset for shield quadrant is set, that means play bright frame
30 
31 extern ubyte Quadrant_xlate[4];
32 
34 
35 class player;
36 class object;
37 class ship_info;
38 
40 void hud_shield_equalize(object *objp, player *pl);
41 void hud_augment_shield_quadrant(object *objp, int direction);
42 void hud_shield_assign_info(ship_info *sip, char *filename);
43 void hud_show_mini_ship_integrity(object *objp, int force_x = -1, int force_y = -1);
44 void hud_shield_show_mini(object *objp, int x_force = -1, int y_force = -1, int x_hull_offset = 0, int y_hull_offset = 0);
46 void hud_shield_quadrant_hit(object *objp, int quadrant);
47 void hud_shield_hit_reset(object *objp, int player=0);
48 
49 void shield_info_reset(object *objp, shield_hit_info *shi);
50 
51 // random page in stuff - moved here by Goober5000
52 extern void hud_ship_icon_page_in(ship_info *sip);
53 
54 class HudGaugeShield: public HudGauge
55 {
56 protected:
57 public:
59  HudGaugeShield(int _gauge_object, int _gauge_config);
60  virtual void render(float frametime);
61  void showShields(object *objp, int mode);
62  int maybeFlashShield(int target_index, int shield_offset);
64 };
65 
67 {
68 protected:
69 public:
71  void render(float frametime);
72 };
73 
75 {
76 protected:
77 public:
79  void render(float frametime);
80 };
81 
83 {
84 protected:
86 
90 public:
92  void initBitmaps(char *fname);
93  void init3DigitOffsets(int x, int y);
94  void init1DigitOffsets(int x, int y);
95  void init2DigitOffsets(int x, int y);
96  int maybeFlashShield(int target_index, int shield_offset);
97  void showMiniShields(object *objp);
98  void showIntegrity(float p_target_integrity);
99  void render(float frametime);
100  void pageIn();
101 };
102 #endif /* __FREESPACE_HUDSHIELDBOX_H__ */
int Mini_2digit_offsets[2]
Definition: hudshield.h:89
void showIntegrity(float p_target_integrity)
Definition: hudshield.cpp:1059
struct shield_hit_info shield_hit_info
int maybeFlashShield(int target_index, int shield_offset)
Definition: hudshield.cpp:887
void hud_shield_level_init()
Definition: hudshield.cpp:121
SCP_vector< int > shield_hit_next_flash
Definition: hudshield.h:26
int shield_show_bright
Definition: hudshield.h:28
int maybeFlashShield(int target_index, int shield_offset)
Definition: hudshield.cpp:1101
SCP_vector< SCP_string > Hud_shield_filenames
Definition: hudshield.cpp:41
void hud_shield_equalize(object *objp, player *pl)
Definition: hudshield.cpp:209
GLenum mode
Definition: Glext.h:5794
void hud_ship_icon_page_in(ship_info *sip)
Definition: hudshield.cpp:177
object * objp
Definition: lua.cpp:3105
Definition: hud.h:201
void render(float frametime)
Definition: hudshield.cpp:924
Definition: player.h:85
GLuint coords
Definition: Glext.h:6925
SCP_vector< int > shield_hit_timers
Definition: hudshield.h:25
char * filename
void hud_show_mini_ship_integrity(object *objp, int force_x=-1, int force_y=-1)
Definition: hudshield.cpp:355
int Mini_1digit_offsets[2]
Definition: hudshield.h:88
hud_frames Shield_mini_gauge
Definition: hudshield.h:85
ubyte Quadrant_xlate[4]
Definition: hudshield.cpp:118
void init1DigitOffsets(int x, int y)
Definition: hudshield.cpp:953
Definition: hud.h:32
void hud_shield_show_mini(object *objp, int x_force=-1, int y_force=-1, int x_hull_offset=0, int y_hull_offset=0)
Definition: hudshield.cpp:402
GLint GLint GLint GLint GLint x
Definition: Glext.h:5182
unsigned char ubyte
Definition: pstypes.h:62
Definition: object.h:141
void render(float frametime)
Definition: hudshield.cpp:913
virtual void render(float frametime)
Definition: hudshield.cpp:592
void renderShieldIcon(coord2d coords[6])
Definition: hudshield.cpp:859
void init2DigitOffsets(int x, int y)
Definition: hudshield.cpp:959
int shield_hit_status
Definition: hudshield.h:27
void shield_info_reset(object *objp, shield_hit_info *shi)
Definition: hudshield.cpp:472
void init3DigitOffsets(int x, int y)
Definition: hudshield.cpp:947
void hud_shield_quadrant_hit(object *objp, int quadrant)
Definition: hudshield.cpp:541
int hull_hit_index
Definition: hudshield.h:24
void initBitmaps(char *fname)
Definition: hudshield.cpp:965
void render(float frametime)
Definition: hudshield.cpp:973
void hud_shield_hit_update()
Definition: hudshield.cpp:511
int Mini_3digit_offsets[2]
Definition: hudshield.h:87
void showShields(object *objp, int mode)
Definition: hudshield.cpp:596
void hud_shield_hit_reset(object *objp, int player=0)
Definition: hudshield.cpp:497
void showMiniShields(object *objp)
Definition: hudshield.cpp:994
GLint y
Definition: Gl.h:1505
void hud_augment_shield_quadrant(object *objp, int direction)
Definition: hudshield.cpp:278
void hud_shield_assign_info(ship_info *sip, char *filename)
Definition: hudshield.cpp:339