1 /*
2 * IceBreaker
3 * Copyright (c) 2000-2002 Matthew Miller <mattdm@mattdm.org> and
4 *   Enrico Tassi <gareuselesinge@infinito.it>
5 *
6 * <http://www.mattdm.org/icebreaker/>
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the Free
10 * Software Foundation; either version 2 of the License, or (at your option)
11 * any later version.
12 *
13 * This program is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16 * for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc., 59
20 * Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 *
22 */
23 
24 #ifndef OPTIONS_H
25 #define OPTIONS_H
26 
27 typedef enum { SOUNDON,SOUNDOFF } SoundSettingType;
28 typedef enum { AUTOPAUSEON,AUTOPAUSEOFF } AutoPauseType;
29 typedef enum { NORMAL, EASY, HARD } GameDifficultyType;
30 typedef enum { FULLSCREENOFF, FULLSCREENON, FULLSCREENALWAYS, FULLSCREENUNKNOWN } FullscreenSettingType;
31 
32 typedef struct
33 {
34 	SoundSettingType sound;
35 	AutoPauseType autopause;
36 	GameDifficultyType difficulty;
37 	FullscreenSettingType fullscreen;
38         char theme[MAXTHEMENAMELENGTH+1]; // +1 for \0
39 } GameOptionsType;
40 
41 typedef struct
42 {
43 	int isfullscreen;
44 	int benchmarkmode;
45 	int soundsystemworks;
46 	int themechanged;
47 } GameFlagsType;
48 
49 extern GameOptionsType options;
50 extern GameOptionsType commandline;
51 
52 extern GameFlagsType gameflags;
53 
54 void setdefaultoptions(void);
55 extern int readoptions(void);
56 extern int writeoptions(void);
57 
58 extern int parsecommandline(int argc, char** argv);
59 
60 #endif /* OPTIONS_H */
61