Import from neverball-1.3.1.tar.gz
[neverball-archive.git] / share / config.h
blobd819eef58ddf9588e5928bae2b0cc8ef9d99579a
1 /*
2 * Copyright (C) 2003 Robert Kooima
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.
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.
15 #ifndef CONFIG_H
16 #define CONFIG_H
18 #include <SDL.h>
19 #include <stdio.h>
21 /*---------------------------------------------------------------------------*/
23 #define CONFIG_DATA "./data"
24 #define CONFIG_USER ".neverball"
27 * Global settings are stored in USER_CONFIG_FILE. Replays are stored
28 * in USER_REPLAY_FILE. These files are placed in the user's home
29 * directory as given by the HOME environment var. If the config file
30 * is deleted, it will be recreated using the defaults.
32 #define USER_CONFIG_FILE "neverballrc"
33 #define USER_REPLAY_FILE "Last"
35 /*---------------------------------------------------------------------------*/
37 #if SDL_BYTEORDER == SDL_BIG_ENDIAN
38 #define RMASK 0xFF000000
39 #define GMASK 0x00FF0000
40 #define BMASK 0x0000FF00
41 #define AMASK 0x000000FF
42 #else
43 #define RMASK 0x000000FF
44 #define GMASK 0x0000FF00
45 #define BMASK 0x00FF0000
46 #define AMASK 0xFF000000
47 #endif
49 #ifdef _WIN32
50 #define FMODE_RB "rb"
51 #define FMODE_WB "wb"
52 #else
53 #define FMODE_RB "r"
54 #define FMODE_WB "w"
55 #endif
57 #ifdef _WIN32
58 #define AUDIO_BUFF_HI 4096
59 #define AUDIO_BUFF_LO 2048
60 #else
61 #define AUDIO_BUFF_HI 2048
62 #define AUDIO_BUFF_LO 1024
63 #endif
65 /*---------------------------------------------------------------------------*/
67 enum {
68 CONFIG_FULLSCREEN,
69 CONFIG_WIDTH,
70 CONFIG_HEIGHT,
71 CONFIG_STEREO,
72 CONFIG_CAMERA,
73 CONFIG_TEXTURES,
74 CONFIG_GEOMETRY,
75 CONFIG_REFLECTION,
76 CONFIG_BACKGROUND,
77 CONFIG_SHADOW,
78 CONFIG_AUDIO_RATE,
79 CONFIG_AUDIO_BUFF,
80 CONFIG_MOUSE_SENSE,
81 CONFIG_MOUSE_INVERT,
82 CONFIG_NICE,
83 CONFIG_FPS,
84 CONFIG_SOUND_VOLUME,
85 CONFIG_MUSIC_VOLUME,
86 CONFIG_JOYSTICK,
87 CONFIG_JOYSTICK_DEVICE,
88 CONFIG_JOYSTICK_AXIS_X,
89 CONFIG_JOYSTICK_AXIS_Y,
90 CONFIG_JOYSTICK_BUTTON_A,
91 CONFIG_JOYSTICK_BUTTON_B,
92 CONFIG_JOYSTICK_BUTTON_R,
93 CONFIG_JOYSTICK_BUTTON_L,
94 CONFIG_JOYSTICK_BUTTON_EXIT,
95 CONFIG_JOYSTICK_CAMERA_1,
96 CONFIG_JOYSTICK_CAMERA_2,
97 CONFIG_JOYSTICK_CAMERA_3,
98 CONFIG_KEY_CAMERA_1,
99 CONFIG_KEY_CAMERA_2,
100 CONFIG_KEY_CAMERA_3,
101 CONFIG_KEY_CAMERA_R,
102 CONFIG_KEY_CAMERA_L,
103 CONFIG_VIEW_FOV,
104 CONFIG_VIEW_DP,
105 CONFIG_VIEW_DC,
106 CONFIG_VIEW_DZ,
108 CONFIG_OPTION_D_COUNT
111 enum {
112 CONFIG_PLAYER,
113 CONFIG_BALL,
114 CONFIG_COIN,
116 CONFIG_OPTION_S_COUNT
119 /*---------------------------------------------------------------------------*/
121 #define DEFAULT_FULLSCREEN 0
122 #define DEFAULT_WIDTH 800
123 #define DEFAULT_HEIGHT 600
124 #define DEFAULT_STEREO 0
125 #define DEFAULT_CAMERA 0
126 #define DEFAULT_TEXTURES 1
127 #define DEFAULT_GEOMETRY 1
128 #define DEFAULT_REFLECTION 1
129 #define DEFAULT_BACKGROUND 1
130 #define DEFAULT_SHADOW 1
131 #define DEFAULT_AUDIO_RATE 44100
132 #define DEFAULT_AUDIO_BUFF AUDIO_BUFF_HI
133 #define DEFAULT_MOUSE_SENSE 300
134 #define DEFAULT_MOUSE_INVERT 0
135 #define DEFAULT_NICE 1
136 #define DEFAULT_FPS 0
137 #define DEFAULT_SOUND_VOLUME 10
138 #define DEFAULT_MUSIC_VOLUME 6
139 #define DEFAULT_JOYSTICK 0
140 #define DEFAULT_JOYSTICK_DEVICE 0
141 #define DEFAULT_JOYSTICK_AXIS_X 0
142 #define DEFAULT_JOYSTICK_AXIS_Y 1
143 #define DEFAULT_JOYSTICK_BUTTON_A 0
144 #define DEFAULT_JOYSTICK_BUTTON_B 1
145 #define DEFAULT_JOYSTICK_BUTTON_R 2
146 #define DEFAULT_JOYSTICK_BUTTON_L 3
147 #define DEFAULT_JOYSTICK_BUTTON_EXIT 4
148 #define DEFAULT_JOYSTICK_CAMERA_1 5
149 #define DEFAULT_JOYSTICK_CAMERA_2 6
150 #define DEFAULT_JOYSTICK_CAMERA_3 7
151 #define DEFAULT_KEY_CAMERA_1 SDLK_F1
152 #define DEFAULT_KEY_CAMERA_2 SDLK_F2
153 #define DEFAULT_KEY_CAMERA_3 SDLK_F3
154 #define DEFAULT_KEY_CAMERA_R SDLK_RIGHT
155 #define DEFAULT_KEY_CAMERA_L SDLK_LEFT
156 #define DEFAULT_VIEW_FOV 50
157 #define DEFAULT_VIEW_DP 75
158 #define DEFAULT_VIEW_DC 25
159 #define DEFAULT_VIEW_DZ 200
160 #define DEFAULT_PLAYER "Player"
161 #define DEFAULT_BALL "png/ball.png"
162 #define DEFAULT_COIN "png/coin.png"
164 /*---------------------------------------------------------------------------*/
166 #define JOY_MAX 32767
167 #define JOY_MID 16383
169 #define MAXSTR 256
170 #define MAXLVL 26
171 #define MAXNAM 9
173 /*---------------------------------------------------------------------------*/
175 void config_init(void);
176 void config_load(void);
177 void config_save(void);
178 int config_mode(int, int, int);
180 const char *config_data(const char *);
181 const char *config_user(const char *);
183 int config_data_path(const char *, const char *);
184 int config_user_path(const char *);
186 /*---------------------------------------------------------------------------*/
188 void config_set_d(int, int);
189 void config_tgl_d(int);
190 int config_tst_d(int, int);
191 int config_get_d(int);
193 void config_set_s(int, char *);
194 void config_get_s(int, char *, int);
196 /*---------------------------------------------------------------------------*/
198 void config_set_grab(void);
199 void config_clr_grab(void);
201 int config_get_pause(void);
202 void config_set_pause(void);
203 void config_clr_pause(void);
204 void config_tgl_pause(void);
206 /*---------------------------------------------------------------------------*/
208 void config_push_persp(float, float, float);
209 void config_push_ortho(void);
210 void config_pop_matrix(void);
211 void config_clear(void);
213 /*---------------------------------------------------------------------------*/
215 #endif