]> icculus.org git repositories - btb/d2x.git/blob - main/menu.h
implement brightness/palette effects in OGL using SetGammaRamp, much faster than...
[btb/d2x.git] / main / menu.h
1 /* $Id: menu.h,v 1.7 2003-10-10 09:36:35 btb Exp $ */
2 /*
3 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
4 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
5 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
6 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
7 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
8 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
9 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
10 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
11 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
12 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
13 */
14
15 /*
16  *
17  * Menu prototypes and variables
18  *
19  * Old Log:
20  * Revision 1.1  1995/05/16  15:59:14  allender
21  * Initial revision
22  *
23  * Revision 2.1  1995/03/06  16:47:41  mike
24  * destination saturn
25  *
26  * Revision 2.0  1995/02/27  11:29:47  john
27  * New version 2.0, which has no anonymous unions, builds with
28  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
29  *
30  * Revision 1.34  1994/12/12  00:16:16  john
31  * Added auto-leveling flag.
32  *
33  * Revision 1.33  1994/12/07  20:04:26  mike
34  * set Max_debris_objects.
35  *
36  * Revision 1.32  1994/11/14  17:23:19  rob
37  * ADded extern for default difficulty settings.
38  *
39  * Revision 1.31  1994/11/10  11:08:29  mike
40  * detail level stuff.
41  *
42  * Revision 1.30  1994/11/05  14:05:53  john
43  * Fixed fade transitions between all screens by making gr_palette_fade_in and out keep
44  * track of whether the palette is faded in or not.  Then, wherever the code needs to fade out,
45  * it just calls gr_palette_fade_out and it will fade out if it isn't already.  The same with fade_in.
46  * This eliminates the need for all the flags like Menu_fade_out, game_fade_in palette, etc.
47  *
48  * Revision 1.29  1994/11/02  11:59:44  john
49  * Moved menu out of game into inferno main loop.
50  *
51  * Revision 1.28  1994/10/17  20:30:59  john
52  * Made the text for the difficulty labels global so that
53  * the high score screen can print "rookie" or whatever.
54  *
55  * Revision 1.27  1994/10/04  10:47:09  matt
56  * Made main menu remember selected item
57  *
58  * Revision 1.26  1994/08/10  19:55:19  john
59  * Changed font stuff; Took out old menu; messed up lots of
60  * other stuff like game sequencing messages, etc.
61  *
62  * Revision 1.25  1994/06/23  18:54:09  matt
63  * Cleaned up game start/menu interaction, and improved main menu a little
64  *
65  * Revision 1.24  1994/06/21  12:11:50  yuan
66  * Fixed up menus and added HUDisplay messages.
67  *
68  * Revision 1.23  1994/06/20  23:15:16  yuan
69  * Color switching capability for the menus.
70  *
71  * Revision 1.22  1994/06/20  22:02:25  yuan
72  * Made menu GREEN by POPULAR DEMAND!!
73  *
74  * Revision 1.21  1994/06/20  21:05:48  yuan
75  * Fixed up menus.
76  *
77  * Revision 1.20  1994/06/20  19:19:29  yuan
78  * Tidied up the menu and the "message blocks" between levels, etc.
79  *
80  * Revision 1.19  1994/06/17  18:01:10  john
81  * A bunch of new stuff by John
82  *
83  * Revision 1.18  1994/05/16  09:37:22  matt
84  * Got rid of global continue_flag
85  *
86  * Revision 1.17  1994/05/14  17:14:51  matt
87  * Got rid of externs in source (non-header) files
88  *
89  * Revision 1.16  1994/05/10  12:14:26  yuan
90  * Game save/load... Demo levels 1-5 added...
91  * High scores fixed...
92  *
93  * Revision 1.15  1994/05/05  09:21:21  yuan
94  * *** empty log message ***
95  *
96  * Revision 1.14  1994/04/29  14:55:40  mike
97  * Change some menu colors.
98  *
99  * Revision 1.13  1994/04/28  18:04:36  yuan
100  * Gamesave added.
101  * Trigger problem fixed (seg pointer is replaced by index now.)
102  *
103  * Revision 1.12  1994/02/18  11:55:01  yuan
104  * Fixed menu to be called from game.
105  *
106  * Revision 1.11  1994/02/10  17:45:39  yuan
107  * Integrated some hacks which still need to be fixed.
108  *
109  * Revision 1.10  1994/02/01  22:50:23  yuan
110  * Final menu version for demo
111  *
112  * Revision 1.9  1994/02/01  11:50:17  yuan
113  * Moved quit message down just a tiny bit
114  *
115  * Revision 1.8  1994/01/31  17:30:16  yuan
116  * Fixed quit not disappearing problem
117  *
118  * Revision 1.7  1994/01/31  12:25:20  yuan
119  * New menu stuff
120  *
121  * Revision 1.6  1994/01/26  13:14:04  john
122  * *** empty log message ***
123  *
124  * Revision 1.5  1993/12/29  16:44:44  yuan
125  * Added some function definitions
126  *
127  * Revision 1.4  1993/12/13  18:53:12  yuan
128  * Fixed dependency problem
129  *
130  * Revision 1.3  1993/12/12  13:53:51  yuan
131  * Added menu and -g flag
132  *
133  * Revision 1.2  1993/12/10  16:07:17  yuan
134  * Working on menu system.  Updated the title screen.
135  *
136  * Revision 1.1  1993/12/10  12:45:27  yuan
137  * Initial revision
138  *
139  *
140  */
141
142 #ifndef _MENU_H
143 #define _MENU_H
144
145 // returns number of item chosen
146 extern int DoMenu();
147 extern void do_options_menu();
148 extern void d2x_options_menu();
149
150 extern int MenuHires;
151
152 #ifdef RELEASE  // read only from hog file
153 #define MENU_PCX_MAC_SHARE ("\x01menub.pcx")
154 #define MENU_PCX_SHAREWARE ("\x01menud.pcx")
155 #define MENU_PCX_OEM (MenuHires?"\x01menuob.pcx":"\x01menuo.pcx")
156 #define MENU_PCX_FULL (MenuHires?"\x01menub.pcx":"\x01menu.pcx")
157 #else
158 #define MENU_PCX_MAC_SHARE ("menub.pcx")
159 #define MENU_PCX_SHAREWARE ("menud.pcx")
160 #define MENU_PCX_OEM (MenuHires?"menuob.pcx":"menuo.pcx")
161 #define MENU_PCX_FULL (MenuHires?"menub.pcx":"menu.pcx")
162 #endif
163
164 // name of background bitmap
165 #define Menu_pcx_name (cfexist(MENU_PCX_FULL)?MENU_PCX_FULL:(cfexist(MENU_PCX_OEM)?MENU_PCX_OEM:cfexist(MENU_PCX_SHAREWARE)?MENU_PCX_SHAREWARE:MENU_PCX_MAC_SHARE))
166
167 extern void set_detail_level_parameters(int detail_level);
168
169 extern char *menu_difficulty_text[];
170 extern int Player_default_difficulty;
171 extern int Max_debris_objects;
172 extern int Auto_leveling_on;
173 extern int Missile_view_enabled;
174 extern int Escort_view_enabled;
175 extern int Cockpit_rear_view;
176
177 #endif /* _MENU_H */