1 /*
2 
3 Copyright (C) 2015-2018 Night Dive Studios, LLC.
4 
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14 
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 
18 */
19 #ifndef __HUD_H
20 #define __HUD_H
21 
22 /*
23  * $Source: r:/prj/cit/src/inc/RCS/hud.h $
24  * $Revision: 1.23 $
25  * $Author: mahk $
26  * $Date: 1994/08/11 18:31:34 $
27  *
28  *
29  */
30 
31 // Includes
32 #include "frtypesx.h"
33 
34 // C Library Includes
35 
36 // System Library Includes
37 
38 // Master Game Includes
39 
40 // Game Library Includes
41 
42 // Game Object Includes
43 
44 // Defines
45 #define HUD_RADIATION   0x00000001u // Are we in radiation
46 #define HUD_BIOHAZARD   0x00000002u // Are we in a bio area
47 #define HUD_RANGE       0x00000004u // Range to target
48 #define HUD_FATIGUE     0x00000008u // High fatigue levels
49 #define HUD_TARGRECT    0x00000010u // Rectangle around target
50 #define HUD_GRENADE     0x00000020u // Time to detonate grenade
51 #define HUD_INFRARED    0x00000040u // Infrared active
52 #define HUD_SHIELD      0x00000080u // Show shield absorption
53 #define HUD_SHODOMETER  0x00000100u // Changes in shodometer
54 #define HUD_DETECT_EXP  0x00000200u // Explosion detection
55 #define HUD_COMPASS     0x00000400u // Compass
56 #define HUD_ZEROGRAV    0x00000800u // abnormal gravity conditions
57 #define HUD_FAKEID      0x00001000u // fakeid software in use
58 #define HUD_DECOY       0x00002000u // decoy software in use
59 #define HUD_TURBO       0x00004000u // turbo software in use
60 #define HUD_CYBERTIME   0x00008000u // time remaining until SHODAN sends his avatar against you
61 #define HUD_CYBERDANGER 0x00010000u // imminent peril of being ejected from cspace
62 #define HUD_RADPOISON   0x00100000u // taking radiation damage
63 #define HUD_BIOPOISON   0x00200000u // taking bio damage
64 #define HUD_BEAMHOT     0x00400000u // weapon about to overheat
65 #define HUD_MSGLINE     0x00800000u // message line.
66 #define HUD_GAMETIME    0x01000000u // time remaining in game
67 #define HUD_ENERGYUSE   0x02000000u // energy usage notification
68 #define HUD_ENVIROUSE   0x04000000u // enviro suit drain/absorb
69 #define HUD_MESSAGE     0x80000000u // general hud bit for hud_message (NIY)
70 
71 #define HUD_ALL         0xFFFFFFFFu
72 
73 #define HUD_COLOR_BANKS 3
74 #define HUD_COLORS_PER_BANK 5
75 
76 // Prototypes
77 
78 // Update the HUD.  If redraw_whole is TRUE, better draw the
79 // whole durned thing.
80 errtype hud_update(uchar redraw_whole, frc *context);
81 errtype cyber_hud_update(uchar redraw_whole);
82 
83 // Set the data being displayed by the HUD.
84 errtype hud_set(ulong hud_modes);
85 errtype hud_unset(ulong hud_modes);
86 errtype hud_set_time(ulong hud_modes, ulong ticks);
87 
88 // Globals
89 extern LGRect target_screen_rect;
90 extern ubyte hud_colors[HUD_COLOR_BANKS][HUD_COLORS_PER_BANK];
91 extern ubyte hud_color_bank;
92 
93 #endif // __HUD_H
94