Back to index

extremetuxracer  0.5beta
game_config.h
Go to the documentation of this file.
00001 /* 
00002  * PPRacer 
00003  * Copyright (C) 2004-2005 Volker Stroebel <volker@planetpenguin.de>
00004  *
00005  * Copyright (C) 1999-2001 Jasmin F. Patry
00006  * 
00007  * This program is free software; you can redistribute it and/or
00008  * modify it under the terms of the GNU General Public License
00009  * as published by the Free Software Foundation; either version 2
00010  * of the License, or (at your option) any later version.
00011  * 
00012  * This program is distributed in the hope that it will be useful,
00013  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00014  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015  * GNU General Public License for more details.
00016  * 
00017  * You should have received a copy of the GNU General Public License
00018  * along with this program; if not, write to the Free Software
00019  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00020  */
00021 
00022 #ifndef _GAME_CONFIG_H
00023 #define _GAME_CONFIG_H
00024 
00025 #include "etracer.h"
00026 
00027 #include <string>
00028 
00029 void init_game_configuration();
00030 void read_config_file(std::string& file);
00031 void write_config_file();
00032 void clear_config_cache();
00033 void register_game_config_callbacks( Tcl_Interp *ip );
00034 int get_config_dir_name( char *buff, unsigned int len );
00035 
00036 #define PROTO_PARAM( name, type ) \
00037     type getparam_ ## name(); \
00038     void setparam_ ## name( type val )
00039 
00040 #define PROTO_PARAM_STRING( name ) \
00041     PROTO_PARAM( name, char* )
00042 
00043 #define PROTO_PARAM_CHAR( name ) \
00044     PROTO_PARAM( name, char )
00045 
00046 #define PROTO_PARAM_INT( name ) \
00047     PROTO_PARAM( name, int )
00048 
00049 #define PROTO_PARAM_BOOL( name ) \
00050     PROTO_PARAM( name, bool )
00051 
00052 
00053 PROTO_PARAM_STRING( data_dir );
00054 
00055 PROTO_PARAM_BOOL( draw_tux_shadow );
00056 
00057 PROTO_PARAM_BOOL( draw_particles );
00058 
00059 PROTO_PARAM_INT( tux_sphere_divisions );
00060 
00061 PROTO_PARAM_INT( tux_shadow_sphere_divisions );
00062 
00063 PROTO_PARAM_BOOL( nice_fog );
00064 
00065 PROTO_PARAM_BOOL( use_sphere_display_list );
00066 
00067 PROTO_PARAM_BOOL( display_fps );
00068 
00069 PROTO_PARAM_BOOL( display_course_percentage );
00070 
00071 PROTO_PARAM_INT( x_resolution );
00072 
00073 PROTO_PARAM_INT( y_resolution );
00074 
00075 PROTO_PARAM_BOOL( x_resolution_half_width );
00076 
00077 PROTO_PARAM_BOOL( capture_mouse );
00078 
00079 PROTO_PARAM_BOOL( do_intro_animation );
00080 
00081 PROTO_PARAM_INT( mipmap_type );
00082 
00083 PROTO_PARAM_BOOL( fullscreen );
00084 
00085 PROTO_PARAM_INT( bpp_mode );
00086 
00087 PROTO_PARAM_BOOL( force_window_position );
00088 
00089 PROTO_PARAM_INT( ode_solver );
00090 
00091 PROTO_PARAM_STRING( quit_key );
00092 
00093 PROTO_PARAM_INT( turn_left_key );
00094 
00095 PROTO_PARAM_INT( turn_right_key );
00096 
00097 PROTO_PARAM_INT( trick_modifier_key );
00098 
00099 PROTO_PARAM_INT( brake_key );
00100 
00101 PROTO_PARAM_INT( paddle_key );
00102 
00103 PROTO_PARAM_STRING( above_view_key );
00104 
00105 PROTO_PARAM_STRING( behind_view_key );
00106 
00107 PROTO_PARAM_STRING( eye_view_key );
00108 
00109 PROTO_PARAM_STRING( follow_view_key );
00110 
00111 PROTO_PARAM_INT( view_mode );
00112 
00113 PROTO_PARAM_STRING( screenshot_key );
00114 
00115 PROTO_PARAM_STRING( pause_key );
00116     
00117 PROTO_PARAM_INT( reset_key );
00118 
00119 PROTO_PARAM_INT( jump_key );
00120 
00121 PROTO_PARAM_INT( joystick_jump_button );
00122 
00123 PROTO_PARAM_INT( joystick_brake_button );
00124 
00125 PROTO_PARAM_INT( joystick_paddle_button );
00126 
00127 PROTO_PARAM_INT( joystick_trick_button );
00128 
00129 PROTO_PARAM_INT( joystick_continue_button );
00130 
00131 PROTO_PARAM_INT( joystick_x_axis );
00132 
00133 PROTO_PARAM_INT( joystick_y_axis );
00134 
00135 PROTO_PARAM_INT( fov );
00136 
00137 PROTO_PARAM_STRING( debug );
00138 
00139 PROTO_PARAM_INT( warning_level );
00140 
00141 PROTO_PARAM_INT( forward_clip_distance );
00142 
00143 PROTO_PARAM_INT( backward_clip_distance );
00144 
00145 PROTO_PARAM_INT( tree_detail_distance );
00146 
00147 PROTO_PARAM_INT( course_detail_level );
00148 
00149 PROTO_PARAM_BOOL( terrain_blending );
00150 
00151 PROTO_PARAM_BOOL( perfect_terrain_blending );
00152 
00153 PROTO_PARAM_BOOL( terrain_envmap );
00154 
00155 PROTO_PARAM_BOOL( disable_fog );
00156 
00157 PROTO_PARAM_BOOL( use_cva );
00158 
00159 PROTO_PARAM_BOOL( cva_hack );
00160 
00161 PROTO_PARAM_BOOL( no_audio );
00162 
00163 PROTO_PARAM_BOOL( sound_enabled );
00164 
00165 PROTO_PARAM_BOOL( music_enabled );
00166 
00167 PROTO_PARAM_INT( sound_volume );
00168 
00169 PROTO_PARAM_INT( music_volume );
00170 
00171 PROTO_PARAM_INT( audio_freq_mode );
00172 
00173 PROTO_PARAM_INT( audio_format_mode );
00174 
00175 PROTO_PARAM_BOOL( audio_stereo );
00176 
00177 PROTO_PARAM_INT( audio_buffer_size );
00178 
00179 PROTO_PARAM_BOOL( track_marks );
00180 
00181 PROTO_PARAM_BOOL( ui_snow );
00182 
00183 PROTO_PARAM_BOOL( write_diagnostic_log );
00184 
00185 PROTO_PARAM_BOOL( stencil_buffer );
00186 
00187 PROTO_PARAM_BOOL( enable_fsaa );
00188 
00189 PROTO_PARAM_INT( multisamples );
00190 
00191 PROTO_PARAM_BOOL( always_save_event_race_data );
00192 
00193 PROTO_PARAM_BOOL( disable_collision_detection );
00194 
00195 PROTO_PARAM_BOOL( disable_joystick );
00196 
00197 PROTO_PARAM_BOOL( disable_videomode_autodetection );
00198 
00199 PROTO_PARAM_BOOL( disable_background );
00200 
00201 PROTO_PARAM_STRING( ui_language );
00202 
00203 
00204 #endif // _GAME_CONFIG_H