Exemple #1
0
void config_load( )
{
    char file_name[512];
    PData *pd, *sub; 
    /* set to defaults */
    config_check_dir();
    config_reset();
    /* load config */
    sprintf( file_name, "%s/%s", config.dir_name, CONFIG_FILE_NAME );
    if ( ( pd = parser_read_file( "config", file_name ) ) == 0 ) {
        fprintf( stderr, "%s\n", parser_get_error() );
        return;
    }
    /* parse config */
    parser_get_int( pd, "gametype", &config.gametype );
    parser_get_int( pd, "starting_level", &config.starting_level );
    if (config.starting_level > 9 || config.starting_level < 0) {
	    config.starting_level = 0;
    }
    parser_get_int( pd, "preview", &config.preview );
    parser_get_int( pd, "help", &config.help );
    parser_get_int( pd, "expert", &config.expert );
    parser_get_int( pd, "center_preview", &config.center_preview );
    parser_get_int( pd, "holes", &config.holes );
    parser_get_int( pd, "rand_holes", &config.rand_holes );
    parser_get_int( pd, "send_all", &config.send_all );
    parser_get_int( pd, "send_tetris", &config.send_tetris );
    if ( parser_get_pdata( pd, "player1", &sub ) )
        parse_player( sub, &config.player1 );
    if ( parser_get_pdata( pd, "player2", &sub ) )
        parse_player( sub, &config.player2 );
    if ( parser_get_pdata( pd, "player3", &sub ) )
        parse_player( sub, &config.player3 );
    parser_get_int( pd, "clear_keystate", &config.clear_keystate );
    parser_get_int( pd, "cpu_aggr", &config.cpu_aggr );
    parser_get_int( pd, "cpu_delay", &config.cpu_delay );
    parser_get_int( pd, "cpu_rot_delay", &config.cpu_rot_delay );
    parser_get_int( pd, "sound", &config.sound );
    parser_get_int( pd, "volume", &config.volume );
    parser_get_int( pd, "transparency", &config.trp );
    parser_get_int( pd, "animations", &config.anim );
    parser_get_int( pd, "fullscreen", &config.fullscreen );
    parser_get_int( pd, "fading", &config.fade );
    parser_get_int( pd, "fps", &config.fps );
    parser_get_int( pd, "background", &config.bkgnd );
    parser_get_int( pd, "static_background", &config.keep_bkgnd );
    parser_get_int( pd, "smooth_hori", &config.smooth_hori );
    parser_get_int( pd, "hori_delay", &config.hori_delay );
    parser_get_int( pd, "vert_delay", &config.vert_delay );
    parser_get_int( pd, "pause_key", &config.pause_key );
    parser_get_int( pd, "block_by_block", &config.block_by_block );
    parser_get_int( pd, "motion_mod", &config.motion_mod );
    parser_get_int( pd, "relative_motion", &config.rel_motion );
    parser_get_int( pd, "grap_input", &config.grab );
    parser_get_int( pd, "invert_mouse", &config.invert );
    parser_get_int( pd, "quick_help", &config.quick_help );
    parser_get_int( pd, "async_collision_check", &config.async_col_check );
    parser_free( &pd );
}
Exemple #2
0
/* load config */
void config_load( )
{
    char *str;
    char file_name[512];
    PData *pd; 
    /* set to defaults */
    config_check_dir();
    config_reset();
    /* load config */
    sprintf( file_name, "%s/%s", config.dir_name, CONFIG_FILE_NAME );
    if ( ( pd = parser_read_file( "config", file_name ) ) == 0 ) {
        fprintf( stderr, "%s\n", parser_get_error() );
        return;
    }
    /* assign */
    parser_get_int( pd, "set_id_local", &config.levelset_id_local );
    parser_get_int( pd, "set_count_local", &config.levelset_count_local );
    parser_get_int( pd, "set_id_home", &config.levelset_id_home );
    parser_get_int( pd, "set_count_home", &config.levelset_count_home );
    parser_get_int( pd, "player_count", &config.player_count );
    if ( parser_get_value( pd, "player0", &str, 0 ) )
        strcpy_lt( config.player_names[0], str, 31 );
    if ( parser_get_value( pd, "player1", &str, 0 ) )
        strcpy_lt( config.player_names[1], str, 31 );
    if ( parser_get_value( pd, "player2", &str, 0 ) )
        strcpy_lt( config.player_names[2], str, 31 );
    if ( parser_get_value( pd, "player3", &str, 0 ) )
        strcpy_lt( config.player_names[3], str, 31 );
    parser_get_int( pd, "diff", &config.diff );
    parser_get_int( pd, "starting_level", &config.startlevel );
    parser_get_int( pd, "rel_warp_limit", &config.rel_warp_limit );
    parser_get_int( pd, "add_bonus_levels", &config.addBonusLevels );
    parser_get_int( pd, "left", &config.k_left );
    parser_get_int( pd, "right", &config.k_right );
    parser_get_int( pd, "fire_left", &config.k_lfire );
    parser_get_int( pd, "fire_right", &config.k_rfire );
    parser_get_int( pd, "return", &config.k_return );
    parser_get_int( pd, "turbo", &config.k_turbo );
    parser_get_int( pd, "rel_motion", &config.rel_motion );
    parser_get_int( pd, "grab", &config.grab );
    parser_get_int( pd, "motion_mod", &config.i_motion_mod );
    config.motion_mod = 0.01 * config.i_motion_mod;
    parser_get_int( pd, "convex", &config.convex );
    parser_get_int( pd, "linear_corner", &config.linear_corner );
    parser_get_int( pd, "random_angle", &config.random_angle );
    parser_get_int( pd, "maxballspeed", &config.maxballspeed_int1000 );
    config.maxballspeed_float = (float)config.maxballspeed_int1000 / 1000;
    parser_get_int( pd, "invert", &config.invert );
    parser_get_int( pd, "sound", &config.sound );
    parser_get_int( pd, "volume", &config.volume );
    parser_get_int( pd, "speech", &config.speech );
    parser_get_int( pd, "badspeech", &config.badspeech );
    parser_get_int( pd, "audio_buffer_size", &config.audio_buffer_size );
    parser_get_int( pd, "anim", &config.anim );
    parser_get_int( pd, "fullscreen", &config.fullscreen );
    parser_get_int( pd, "fade", &config.fade );
    parser_get_int( pd, "bonus_info", &config.bonus_info );
    parser_get_int( pd, "fps", &config.fps );
    parser_get_int( pd, "ball_level", &config.ball_level );
    parser_get_int( pd, "debris_level", &config.debris_level );
    parser_get_int( pd, "i_key_speed", &config.i_key_speed );
    config.key_speed = 0.001 * config.i_key_speed;
    parser_get_int( pd, "use_hints", &config.use_hints );
    parser_get_int( pd, "return_on_click", &config.return_on_click );
    parser_get_int( pd, "theme_id", &config.theme_id );
    parser_get_int( pd, "theme_count", &config.theme_count );
    if ( parser_get_value( pd, "server", &str, 0 ) )
        strcpy_lt( config.server, str, 64 );
    if ( parser_get_value( pd, "local_port", &str, 0 ) )
        strcpy_lt( config.local_port, str, 6 );
    if ( parser_get_value( pd, "username", &str, 0 ) )
        strcpy_lt( config.username, str, 15 );
    parser_get_int( pd, "mp_diff", &config.mp_diff );
    parser_get_int( pd, "mp_rounds", &config.mp_rounds );
    parser_get_int( pd, "mp_frags", &config.mp_frags );
    parser_get_int( pd, "mp_balls", &config.mp_balls );
    parser_free( &pd );
}