📄 utils.cpp
字号:
{"effort_inc", (void *)&SP_effort_inc, V_FLOAT},
{"ball_size", (void *)&SP_ball_size, V_FLOAT},
{"ball_decay", (void *)&SP_ball_decay, V_FLOAT},
{"ball_rand", (void *)&SP_ball_rand, V_FLOAT},
{"ball_weight", (void *)&SP_ball_weight, V_FLOAT},
{"ball_speed_max", (void *)&SP_ball_speed_max, V_FLOAT},
{"baccel_max", (void *)&SP_baccel_max, V_FLOAT},
{"dash_power_rate", (void *)&SP_dash_power_rate, V_FLOAT},
{"kick_power_rate", (void *)&SP_kick_power_rate, V_FLOAT},
{"kickable_margin", (void *)&SP_kickable_margin, V_FLOAT},
{"catch_probability", (void *)&SP_catch_prob, V_FLOAT},
{"catchable_area_l", (void *)&SP_catch_area_l, V_FLOAT},
{"catchable_area_w", (void *)&SP_catch_area_w, V_FLOAT},
{"maxpower", (void *)&SP_max_power, V_FLOAT},
{"minpower", (void *)&SP_min_power, V_FLOAT},
{"maxmoment", (void *)&SP_max_moment, V_FLOAT},
{"minmoment", (void *)&SP_min_moment, V_FLOAT},
{"maxneckang", (void *)&SP_max_neck_angle, V_FLOAT},
{"minneckang", (void *)&SP_min_neck_angle, V_FLOAT},
{"maxneckmoment", (void *)&SP_max_neck_moment,V_FLOAT},
{"minneckmoment", (void *)&SP_min_neck_moment,V_FLOAT},
{"visible_angle", (void *)&SP_visible_angle, V_FLOAT},
{"audio_cut_dist", (void *)&SP_audio_cut_dist, V_FLOAT},
{"quantize_step", (void *)&SP_dist_qstep, V_FLOAT},
{"quantize_step_l", (void *)&SP_land_qstep, V_FLOAT},
{"ckick_margin", (void *)&SP_ckmargin, V_FLOAT},
{"wind_dir", (void *)&SP_wind_dir, V_FLOAT},
{"wind_force", (void *)&SP_wind_force, V_FLOAT},
{"wind_rand", (void *)&SP_wind_rand, V_FLOAT},
{"wind_none", (void *)&SP_wind_none, V_ONOFF},
{"wind_random", (void *)&SP_wind_random, V_ONOFF},
{"half_time", (void *)&SP_half_time, V_INT},
{"port", (void *)&SP_port, V_INT},
{"coach_port", (void *)&SP_coach_port, V_INT},
{"olcoach_port", (void *)&SP_olcoach_port, V_INT},
{"simulator_step", (void *)&SP_simulator_step, V_INT},
{"send_step", (void *)&SP_send_step, V_INT},
{"recv_step", (void *)&SP_recv_step, V_INT},
{"say_msg_size", (void *)&SP_say_msg_size, V_INT},
{"hear_max", (void *)&SP_hear_max, V_INT},
{"hear_inc", (void *)&SP_hear_inc, V_INT},
{"hear_decay", (void *)&SP_hear_decay, V_INT},
{"catch_ban_cycle", (void *)&SP_catch_ban_cycle,V_INT},
{"coach", (void *)&SP_coach_mode, V_ONOFF},
{"coach_w_referee", (void *)&SP_coach_w_referee_mode,V_ONOFF},
{"say_coach_cnt_max", (void *)&SP_say_coach_cnt_max, V_INT},
{"say_coach_msg_size", (void *)&SP_say_coach_msg_size, V_INT},
{"send_vi_step", (void *)&SP_send_vi_step, V_INT},
{"look_step", (void *)&SP_look_step, V_INT},
{"use_offside", (void *)&SP_use_offside, V_ONOFF},
{"forbid_kick_off_offside",(void *)&SP_forbid_kickoff_offside, V_ONOFF},
{"record_log", (void *)&SP_rec_log, V_ONOFF},
{"record_version", (void *)&SP_rec_ver, V_INT},
{"send_log", (void *)&SP_send_log, V_ONOFF},
{"verbose", (void *)&SP_verbose, V_ONOFF},
{"offside_active_area_size", (void *)&SP_offside_area, V_FLOAT},
{"inertia_moment", (void *)&SP_inertia_moment, V_FLOAT},
{"sense_body_step", (void *)&SP_sense_body_step, V_INT},
{"offside_kick_margin", (void *)&SP_offside_kick_margin,V_FLOAT},
{"record_messages", (void *)&SP_record_messages,V_ONOFF},
{"clang_win_size", (void *)&SP_clang_win_size, V_INT},
{"clang_define_win", (void *)&SP_clang_define_win, V_INT},
{"clang_meta_win", (void *)&SP_clang_meta_win, V_INT},
{"clang_advice_win", (void *)&SP_clang_advice_win, V_INT},
{"clang_info_win", (void *)&SP_clang_info_win, V_INT},
{"clang_mess_delay", (void *)&SP_clang_mess_delay, V_INT},
{"clang_mess_per_cycle",(void *)&SP_clang_mess_per_cycle,V_INT},
{"player_types", (void *)&SP_player_types, V_INT},
{"subs_max", (void *)&SP_subs_max, V_INT},
{"player_speed_max_delta_min", (void *)&SP_player_speed_max_delta_min, V_FLOAT},
{"player_speed_max_delta_max", (void *)&SP_player_speed_max_delta_max, V_FLOAT},
{"stamina_inc_max_delta_factor",(void *)&SP_stamina_inc_max_delta_factor,V_FLOAT},
{"player_decay_delta_min", (void *)&SP_player_decay_delta_min, V_FLOAT},
{"player_decay_delta_max", (void *)&SP_player_decay_delta_max, V_FLOAT},
{"inertia_moment_delta_factor", (void *)&SP_inertia_moment_delta_factor, V_FLOAT},
{"dash_power_rate_delta_min", (void *)&SP_dash_power_rate_delta_min, V_FLOAT},
{"dash_power_rate_delta_max", (void *)&SP_dash_power_rate_delta_max, V_FLOAT},
{"player_size_delta_factor", (void *)&SP_player_size_delta_factor, V_FLOAT},
{"kickable_margin_delta_min", (void *)&SP_kickable_margin_delta_min, V_FLOAT},
{"kickable_margin_delta_max", (void *)&SP_kickable_margin_delta_max, V_FLOAT},
{"kick_rand_delta_factor", (void *)&SP_kick_rand_delta_factor, V_FLOAT},
{"extra_stamina_delta_min", (void *)&SP_extra_stamina_delta_min, V_FLOAT},
{"extra_stamina_delta_max", (void *)&SP_extra_stamina_delta_max, V_FLOAT},
{"effort_max_delta_factor", (void *)&SP_effort_max_delta_factor, V_FLOAT},
{"effort_min_delta_factor", (void *)&SP_effort_min_delta_factor, V_FLOAT},
{"drop_ball_time", (void *)&SP_drop_ball_time, V_INT},
{"goalie_max_moves", (void *)&SP_goalie_max_moves, V_INT},
{"log_file", (void *)&CP_logfile, V_STRING},
{"rec_file", (void *)&CP_recfile, V_STRING},
{"it_weight_file", (void *)&CP_IT_weightfile, V_STRING},
{"it_ref_weight_file", (void *)&CP_IT_ref_weigthfile, V_STRING},
{"it_time_weight_file", (void *)&CP_IT_time_weightfile, V_STRING},
{"fm_offense_weight_file", (void *)&CP_FM_offense_weightfile, V_STRING},
{"fm_defense_weight_file", (void *)&CP_FM_defense_weightfile, V_STRING},
{"pass_weight_file", (void *)&CP_PASS_weightfile, V_STRING},
{"shoot_weight_file", (void *)&CP_SHOOT_weightfile, V_STRING},
{"cb_weight_file", (void*)&CP_CB_weightfile, V_STRING},
{"offsen_weight_file", (void *)&CP_Off_sen_weightfile, V_STRING},
{"df_sensitivity_weight_file", (void *)&CP_DF_Sensitivity_weightfile, V_STRING},
{"mark_weight_file", (void *)&CP_Mark_priority_weightfile, V_STRING},
{"block_weight_file", (void *)&CP_Block_priority_weightfile, V_STRING},
{"kick_oa_weightfile_a", (void *)&CP_KickOA_weightfile_A, V_STRING},
{"kick_oa_weightfile_b", (void *)&CP_KickOA_weightfile_B, V_STRING},
{"kick_oa_weightfile_c", (void *)&CP_KickOA_weightfile_C, V_STRING},
{"kick_oa_weightfile_d", (void *)&CP_KickOA_weightfile_D, V_STRING},
{"deviation_weight_file", (void *)&CP_deviation_weightfile,V_STRING},
{"df_formation_priority_file", (void *)&CP_DF_formation_priority_file,V_STRING},
{"df_press_priority_file", (void *)&CP_DF_press_priority_file,V_STRING},
{"my_score", (void *)&IP_MyScore, V_INT},
{"their_score", (void *)&IP_TheirScore, V_INT},
{"reconnect", (void *)&IP_reconnect, V_INT},
{"team_name", (void *)&CP_TeamName, V_STRING},
{"opp_team_name", (void *)&CP_Opp_TeamName, V_STRING},
{"goalie", (void *)&CP_goalie, V_ONOFF},
{"UNum", (void *)&CP_Number, V_INT},
{"matrix", (void *)&CP_matrixfile, V_STRING},
{"hostip", (void *)&SP_host[0], V_STRING},
{"player_1_attackness", (void *)&FP_attackness[0], V_FLOAT},
{"player_1_leftness", (void *)&FP_leftness[0], V_FLOAT},
{"player_1_aggressiveness", (void *)&FP_aggressiveness[0], V_FLOAT},
{"player_1_creativeness", (void *)&FP_creativeness[0], V_FLOAT},
{"player_2_attackness", (void *)&FP_attackness[1], V_FLOAT},
{"player_2_leftness", (void *)&FP_leftness[1], V_FLOAT},
{"player_2_aggressiveness", (void *)&FP_aggressiveness[1], V_FLOAT},
{"player_2_creativeness", (void *)&FP_creativeness[1], V_FLOAT},
{"player_3_attackness", (void *)&FP_attackness[2], V_FLOAT},
{"player_3_leftness", (void *)&FP_leftness[2], V_FLOAT},
{"player_3_aggressiveness", (void *)&FP_aggressiveness[2], V_FLOAT},
{"player_3_creativeness", (void *)&FP_creativeness[2], V_FLOAT},
{"player_4_attackness", (void *)&FP_attackness[3], V_FLOAT},
{"player_4_leftness", (void *)&FP_leftness[3], V_FLOAT},
{"player_4_aggressiveness", (void *)&FP_aggressiveness[3], V_FLOAT},
{"player_4_creativeness", (void *)&FP_creativeness[3], V_FLOAT},
{"player_5_attackness", (void *)&FP_attackness[4], V_FLOAT},
{"player_5_leftness", (void *)&FP_leftness[4], V_FLOAT},
{"player_5_aggressiveness", (void *)&FP_aggressiveness[4], V_FLOAT},
{"player_5_creativeness", (void *)&FP_creativeness[4], V_FLOAT},
{"player_6_attackness", (void *)&FP_attackness[5], V_FLOAT},
{"player_6_leftness", (void *)&FP_leftness[5], V_FLOAT},
{"player_6_aggressiveness", (void *)&FP_aggressiveness[5], V_FLOAT},
{"player_6_creativeness", (void *)&FP_creativeness[5], V_FLOAT},
{"player_7_attackness", (void *)&FP_attackness[6], V_FLOAT},
{"player_7_leftness", (void *)&FP_leftness[6], V_FLOAT},
{"player_7_aggressiveness", (void *)&FP_aggressiveness[6], V_FLOAT},
{"player_7_creativeness", (void *)&FP_creativeness[6], V_FLOAT},
{"player_8_attackness", (void *)&FP_attackness[7], V_FLOAT},
{"player_8_leftness", (void *)&FP_leftness[7], V_FLOAT},
{"player_8_aggressiveness", (void *)&FP_aggressiveness[7], V_FLOAT},
{"player_8_creativeness", (void *)&FP_creativeness[7], V_FLOAT},
{"player_9_attackness", (void *)&FP_attackness[8], V_FLOAT},
{"player_9_leftness", (void *)&FP_leftness[8], V_FLOAT},
{"player_9_aggressiveness", (void *)&FP_aggressiveness[8], V_FLOAT},
{"player_9_creativeness", (void *)&FP_creativeness[8], V_FLOAT},
{"player_10_attackness", (void *)&FP_attackness[9], V_FLOAT},
{"player_10_leftness", (void *)&FP_leftness[9], V_FLOAT},
{"player_10_aggressiveness", (void *)&FP_aggressiveness[9], V_FLOAT},
{"player_10_creativeness", (void *)&FP_creativeness[9], V_FLOAT},
{"player_11_attackness", (void *)&FP_attackness[10], V_FLOAT},
{"player_11_leftness", (void *)&FP_leftness[10], V_FLOAT},
{"player_11_aggressiveness", (void *)&FP_aggressiveness[10], V_FLOAT},
{"player_11_creativeness", (void *)&FP_creativeness[10], V_FLOAT},
{"goalie_number", (void *)&FP_goalie_number , V_INT},
{"shoot_avoidgoalie", (void *)&CP_shoot_avoidgoalie , V_FLOAT},
{"encryption_matrix", (void *)&CP_encryption_matrix , V_INT},
{"encryption_key", (void *)&CP_encryption_key , V_INT},
{"\0", NULL, V_NONE}
} ;
/* skip command name */
argv++ ; argc-- ;
/* first, search option '-file' */
int i ;
FILE *fp ;
for(i = 0 ; i < argc ; i++) {
if (!strcmp(*(argv + i),"-file")) {
if ((fp = fopen(*(argv+i+1),"r")) == NULL) {
my_error("cant't open configure file");
break ;
}
char buf[100] ;
while(fgets(buf,100,fp) != NULL) {
/* ignore remark line */
if (buf[0] == '#' || buf[0] == '\n')continue ;
/* replace from ':' to ' ' */
char *t = buf ;
while(*t != NULLCHAR) {
if (*t == ':') *t = ' ' ;
t++ ;
}
int n, p ;
char com[256] ;
char onoff[16] ;
n = sscanf(buf,"%s", com);
if (n < 1) {
my_error("Illegal line : %s",buf);
continue ;
}
for (p = 0 ; opt[p].vptr != NULL ; p++) {
if (strcmp(com, opt[p].optname))
continue ;
/* match */
switch(opt[p].vsize) {
case V_INT:
n = sscanf(buf, "%s %d", com, (int *)opt[p].vptr) ;
break ;
case V_STRING:
n = sscanf(buf, "%s %s", com, (char *)opt[p].vptr) ;
break ;
case V_FLOAT:
n = sscanf(buf, "%s %f", com, (float *)opt[p].vptr) ;
break ;
case V_BOOL:
n = 2 ;
*((bool *)opt[p].vptr) = true ;
break ;
case V_ONOFF:
n = sscanf(buf, "%s %s", com, onoff) ;
if (n == 1) {
n = 2;
*((bool *)opt[p].vptr) = true;
} else
*((bool *)opt[p].vptr) = (!strcmp(onoff, "on")) ? true :false;
break ;
}
if (n < 2)
cerr << "Illegal line (" << com << ") " << endl ;
break ;
}
if (opt[p].vptr == NULL)
cerr << "Illegal line (" << com << ") " << endl ;
}
fclose(fp) ;
/* break ; */ // Without this, more than one file can be read
}
}
/* next, analyze command line option */
int p ;
while (argc) {
if (!strcmp(*argv, "-file")) {
argv += 2 ;
argc -= 2 ;
continue ;
}
for (p = 0 ; opt[p].vptr != NULL ; p++) {
if (strcmp(*argv + 1, opt[p].optname))
continue ;
/* match */
argv++ ;
argc-- ;
switch(opt[p].vsize) {
case V_INT:
*((int *)opt[p].vptr) = atoi(*argv) ;
break ;
case V_STRING:
strcpy((char *)opt[p].vptr, *argv) ;
break ;
case V_FLOAT:
*((float *)opt[p].vptr) = float(atof(*argv)) ;
break ;
case V_BOOL:
*((bool *)opt[p].vptr) = true ;
argv-- ;
argc++ ;
break ;
case V_ONOFF:
if (argc > 0 && (*argv)[0] != '-') {
*((bool *)opt[p].vptr) = (!strcmp(*argv, "on")) ? true : false ;
} else {
/* if there's nothing specified, then we set it to true */
*((bool *)opt[p].vptr) = true;
argv-- ;
argc++ ;
}
break ;
}
break ;
}
if (opt[p].vptr == NULL)
cerr << "Unrecognized Option : " << *argv << endl ;
argv++ ;
argc-- ;
}
/*****************************************************************/
SP_half_time = SP_half_time * 1000 / SP_simulator_step ;
SP_kickable_area = SP_kickable_margin + SP_ball_size + SP_player_size ;
if ( !CP_goalie )
CP_goalie = bool(CP_Number == FP_goalie_number);
if (IP_reconnect)
CP_Number = IP_reconnect;
char n[10];
sprintf(n,"%d",CP_Number);
strcat(CP_logfile,n); // logfile name
strcat(CP_recfile,n); // recfile name
for(i = 0; i < CP_matrix_max; i++){
sprintf(CP_m_file[i],"%s%d_%d", CP_matrixfile, CP_Number, i+1);
}
CP_attackness = FP_attackness[Idx(CP_Number)];
CP_leftness = FP_leftness[Idx(CP_Number)];
CP_aggressiveness = FP_aggressiveness[Idx(CP_Number)];
CP_creativeness = FP_creativeness[Idx(CP_Number)];
CP_division = 360.0f / CP_num_divisions;
sprintf(CP_appname, "%s-No.%d", CP_TeamName, CP_Number);
SP_ball_decay_ln = (float)log(SP_ball_decay);
CP_turnball_radius_threshold = SP_ball_size + SP_player_size + CP_collision_buffer;
SP_semi_pitch_length = SP_pitch_length / 2;
SP_semi_pitch_width = SP_pitch_width / 2;
SP_midfieldline = SP_semi_pitch_length * 0.48f;
SP_backfieldline = -SP_semi_pitch_length * 0.285f;
SP_left_wing = - SP_semi_pitch_width * 0.353f;
SP_right_wing = -SP_left_wing;
CP_control_margin = SP_kickable_area + 0.15f;
SP_pitch_diameter = (float)sqrt(Sqr(SP_pitch_width) + Sqr(SP_pitch_length));
CP_safecatch_width = (float)sqrt(Sqr(SP_catch_area_l) - Sqr(SP_ball_speed_max /2));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -