1 //
2 // Copyright(C) 1993-1996 Id Software, Inc.
3 // Copyright(C) 2005-2014 Simon Howard
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (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 // DESCRIPTION:
16 //	Status bar code.
17 //	Does the face/direction indicator animatin.
18 //	Does palette indicators as well (red pain/berserk, bright pickup)
19 //
20 
21 #ifndef __STSTUFF_H__
22 #define __STSTUFF_H__
23 
24 #include "doomtype.h"
25 #include "d_event.h"
26 #include "m_cheat.h"
27 
28 // Size of statusbar.
29 // Now sensitive for scaling.
30 #define ST_HEIGHT	32
31 #define ST_WIDTH	ORIGWIDTH
32 #define ST_Y		(ORIGHEIGHT - ST_HEIGHT)
33 
34 
35 //
36 // STATUS BAR
37 //
38 
39 // Called by main loop.
40 boolean ST_Responder (event_t* ev);
41 
42 // Called by main loop.
43 void ST_Ticker (void);
44 
45 // Called by main loop.
46 void ST_Drawer (boolean fullscreen, boolean refresh);
47 
48 // haleyjd 09/01/10: [STRIFE] New function.
49 // Called by main loop to draw external status bar bits.
50 // Returns true if a popup is drawing.
51 boolean ST_DrawExternal(void);
52 
53 // Called when the console player is spawned on each level.
54 void ST_Start (void);
55 
56 // Called by startup code.
57 void ST_Init (void);
58 
59 
60 
61 // States for status bar code.
62 typedef enum
63 {
64     AutomapState,
65     FirstPersonState
66 
67 } st_stateenum_t;
68 
69 
70 // States for the chat code.
71 typedef enum
72 {
73     StartChatState,
74     WaitDestState,
75     GetChatState
76 
77 } st_chatstateenum_t;
78 
79 
80 
81 extern byte *st_backing_screen;
82 
83 extern cheatseq_t cheat_mus;     // [STRIFE]: idmus -> spin
84 extern cheatseq_t cheat_god;     // [STRIFE]: iddqd -> omnipotent
85 extern cheatseq_t cheat_ammo;    // [STRIFE]: idfa -> boomstix
86 extern cheatseq_t cheat_noclip;  // [STRIFE]: idclip -> elvis
87 extern cheatseq_t cheat_clev;    // [STRIFE]: idclev -> rift
88 extern cheatseq_t cheat_mypos;   // [STRIFE]: idmypos -> gps
89 extern cheatseq_t cheat_scoot;   // [STRIFE]: new cheat scoot
90 extern cheatseq_t cheat_nuke;    // [STRIFE]: new cheat stonecold
91 extern cheatseq_t cheat_keys;    // [STRIFE]: new cheat jimmy (all keys)
92 extern cheatseq_t cheat_stealth; // [STRIFE]: new cheat gripper
93 extern cheatseq_t cheat_midas;   // [STRIFE]: new cheat
94 extern cheatseq_t cheat_lego;    // [STRIFE]: new cheat
95 extern cheatseq_t cheat_dev;     // [STRIFE]: new cheat
96 
97 extern cheatseq_t cheat_powerup[];
98 
99 
100 #endif
101