updated URL of forum and table in readme file
[neverball] / share / config.h
1 /*
2  * Copyright (C) 2003 Robert Kooima
3  *
4  * NEVERBALL is  free software; you can redistribute  it and/or modify
5  * it under the  terms of the GNU General  Public License as published
6  * by the Free  Software Foundation; either version 2  of the License,
7  * or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT  ANY  WARRANTY;  without   even  the  implied  warranty  of
11  * MERCHANTABILITY or  FITNESS FOR A PARTICULAR PURPOSE.   See the GNU
12  * General Public License for more details.
13  */
14
15 #ifndef CONFIG_H
16 #define CONFIG_H
17
18 /*
19  * This file contains:
20  * 1- some global config methods (stored in a config file)
21  * 2- some SDL based functions
22  *
23  * If you're looking for constants, you should also see base_config.h
24  */
25
26 #include <SDL.h>
27 #include "base_config.h"
28
29 /*---------------------------------------------------------------------------*/
30
31 enum {
32     CONFIG_FULLSCREEN,
33     CONFIG_WIDTH,
34     CONFIG_HEIGHT,
35     CONFIG_STEREO,
36     CONFIG_CAMERA,
37     CONFIG_TEXTURES,
38     CONFIG_GEOMETRY,
39     CONFIG_REFLECTION,
40     CONFIG_BACKGROUND,
41     CONFIG_SHADOW,
42     CONFIG_AUDIO_RATE,
43     CONFIG_AUDIO_BUFF,
44     CONFIG_MOUSE_SENSE,
45     CONFIG_MOUSE_INVERT,
46     CONFIG_NICE,
47     CONFIG_FPS,
48     CONFIG_SOUND_VOLUME,
49     CONFIG_MUSIC_VOLUME,
50     CONFIG_JOYSTICK,
51     CONFIG_JOYSTICK_DEVICE,
52     CONFIG_JOYSTICK_AXIS_X,
53     CONFIG_JOYSTICK_AXIS_Y,
54     CONFIG_JOYSTICK_BUTTON_A,
55     CONFIG_JOYSTICK_BUTTON_B,
56     CONFIG_JOYSTICK_BUTTON_R,
57     CONFIG_JOYSTICK_BUTTON_L,
58     CONFIG_JOYSTICK_BUTTON_EXIT,
59     CONFIG_JOYSTICK_CAMERA_1,
60     CONFIG_JOYSTICK_CAMERA_2,
61     CONFIG_JOYSTICK_CAMERA_3,
62     CONFIG_KEY_CAMERA_1,
63     CONFIG_KEY_CAMERA_2,
64     CONFIG_KEY_CAMERA_3,
65     CONFIG_KEY_CAMERA_R,
66     CONFIG_KEY_CAMERA_L,
67     CONFIG_VIEW_FOV,
68     CONFIG_VIEW_DP,
69     CONFIG_VIEW_DC,
70     CONFIG_VIEW_DZ,
71     CONFIG_ROTATE_FAST,
72     CONFIG_ROTATE_SLOW,
73     CONFIG_MODE,
74     CONFIG_CHEAT,
75
76     CONFIG_OPTION_D_COUNT
77 };
78
79 enum {
80     CONFIG_PLAYER,
81     CONFIG_BALL,
82     CONFIG_BALL_BONUS,
83     CONFIG_LANG,
84
85     CONFIG_OPTION_S_COUNT
86 };
87
88 /*---------------------------------------------------------------------------*/
89
90 #define DEFAULT_FULLSCREEN           0
91 #define DEFAULT_WIDTH                800
92 #define DEFAULT_HEIGHT               600
93 #define DEFAULT_STEREO               0
94 #define DEFAULT_CAMERA               0
95 #define DEFAULT_TEXTURES             1
96 #define DEFAULT_GEOMETRY             1
97 #define DEFAULT_REFLECTION           1
98 #define DEFAULT_BACKGROUND           1
99 #define DEFAULT_SHADOW               1
100 #define DEFAULT_AUDIO_RATE           44100
101 #define DEFAULT_AUDIO_BUFF           AUDIO_BUFF_HI
102 #define DEFAULT_MOUSE_SENSE          300
103 #define DEFAULT_MOUSE_INVERT         0
104 #define DEFAULT_NICE                 1
105 #define DEFAULT_FPS                  0
106 #define DEFAULT_SOUND_VOLUME         10
107 #define DEFAULT_MUSIC_VOLUME         6
108 #define DEFAULT_JOYSTICK             0
109 #define DEFAULT_JOYSTICK_DEVICE      0
110 #define DEFAULT_JOYSTICK_AXIS_X      0
111 #define DEFAULT_JOYSTICK_AXIS_Y      1
112 #define DEFAULT_JOYSTICK_BUTTON_A    0
113 #define DEFAULT_JOYSTICK_BUTTON_B    1
114 #define DEFAULT_JOYSTICK_BUTTON_R    2
115 #define DEFAULT_JOYSTICK_BUTTON_L    3
116 #define DEFAULT_JOYSTICK_BUTTON_EXIT 4
117 #define DEFAULT_JOYSTICK_CAMERA_1    5
118 #define DEFAULT_JOYSTICK_CAMERA_2    6
119 #define DEFAULT_JOYSTICK_CAMERA_3    7
120 #define DEFAULT_KEY_CAMERA_1         SDLK_F1
121 #define DEFAULT_KEY_CAMERA_2         SDLK_F2
122 #define DEFAULT_KEY_CAMERA_3         SDLK_F3
123 #define DEFAULT_KEY_CAMERA_R         SDLK_RIGHT
124 #define DEFAULT_KEY_CAMERA_L         SDLK_LEFT
125 #define DEFAULT_VIEW_FOV             50
126 #define DEFAULT_VIEW_DP              75
127 #define DEFAULT_VIEW_DC              25
128 #define DEFAULT_VIEW_DZ              200
129 #define DEFAULT_ROTATE_SLOW          100
130 #define DEFAULT_ROTATE_FAST          200
131 #define DEFAULT_MODE                 1
132 #define DEFAULT_CHEAT                0
133 #define DEFAULT_PLAYER               ""
134 #define DEFAULT_BALL                 "png/ball.png"
135 #define DEFAULT_BALL_BONUS           "png/ball-bonus.png"
136 #define DEFAULT_LANG                 ""
137
138 /*---------------------------------------------------------------------------*/
139
140 void config_init(void);
141 void config_load(void);
142 void config_save(void);
143 int  config_mode(int, int, int);
144
145 /*---------------------------------------------------------------------------*/
146
147 void config_set_d(int, int);
148 void config_tgl_d(int);
149 int  config_tst_d(int, int);
150 int  config_get_d(int);
151
152 void config_set_s(int, const char *);
153 void config_get_s(int, char *, int);
154 const char *config_simple_get_s(int i);
155
156
157 /*---------------------------------------------------------------------------*/
158
159 void config_set_grab(void);
160 void config_clr_grab(void);
161 int  config_get_grab(void);
162
163 int  config_get_pause(void);
164 void config_set_pause(void);
165 void config_clr_pause(void);
166 void config_tgl_pause(void);
167
168 /*---------------------------------------------------------------------------*/
169
170 void config_push_persp(float, float, float);
171 void config_push_ortho(void);
172 void config_pop_matrix(void);
173 void config_clear(void);
174
175 /*---------------------------------------------------------------------------*/
176
177 #endif