⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parseparam.cpp

📁 2002年
💻 CPP
字号:
#include "parseparam.h"

#include "smp_func.h"
#include "paramreaderutil.h"
#include "utils.h"
#include "worldmodel.h"

void ParseParamV7::Parse_PlayerParams(char *SensoryInfo){	
}

void ParseParamV7::Parse_PlayerTypes(char *SensoryInfo){
	int id = get_int(&SensoryInfo);
	PlayerType* p = &playertypes[id];
	
	p->player_speed_max = get_float(&SensoryInfo);
	p->stamina_inc_max = get_float(&SensoryInfo);
	p->player_decay = get_float(&SensoryInfo);
	p->inertia_moment = get_float(&SensoryInfo);
	p->dash_power_rate = get_float(&SensoryInfo);
	p->player_size = get_float(&SensoryInfo);
	p->kickable_margin = get_float(&SensoryInfo);
	p->kick_rand = get_float(&SensoryInfo);
	p->extra_stamina = get_float(&SensoryInfo);
	p->effort_max = get_float(&SensoryInfo);
	p->effort_min = get_float(&SensoryInfo);
	
	p->player_speed_max = Min(p->player_speed_max, ServerParam::max_power * p->dash_power_rate * p->effort_max / ( 1-p->player_decay));
}


void ParseParamV7::Parse_PlayerTypeChange(char* SenseInfo){
	int num,type;
	num = get_int(&SenseInfo);
	if(*SenseInfo == ')'){
		return;
	}
	type = get_int(&SenseInfo);
	GetPlayer(num).ChangeType(type);
}

void ParseParamV7::Parse_ServerParams(char *SensoryInfo){
	goal_width = get_float(&SensoryInfo);
	inertia_moment = get_float(&SensoryInfo);
	player_size = get_float(&SensoryInfo);
	player_decay = get_float(&SensoryInfo);
	player_rand = get_float(&SensoryInfo);
	player_weight = get_float(&SensoryInfo);
	player_speed_max = get_float(&SensoryInfo);
	paccel_max = get_float(&SensoryInfo);
	stamina_max = get_float(&SensoryInfo);
	stamina_inc = get_float(&SensoryInfo);
	recover_init = get_float(&SensoryInfo);
	recover_dec_thr = get_float(&SensoryInfo);
	recover_min = get_float(&SensoryInfo);
	recover_dec = get_float(&SensoryInfo);
	effort_init = get_float(&SensoryInfo);
	effort_dec_thr = get_float(&SensoryInfo);
	effort_min = get_float(&SensoryInfo);
	effort_dec = get_float(&SensoryInfo);
	effort_inc_thr = get_float(&SensoryInfo);
	effort_inc = get_float(&SensoryInfo);
	kick_rand = get_float(&SensoryInfo);
	team_actuator_noise = get_float(&SensoryInfo);
	prand_factor_l = get_float(&SensoryInfo);
	prand_factor_r = get_float(&SensoryInfo);
	kick_rand_factor_l = get_float(&SensoryInfo);
	kick_rand_factor_r = get_float(&SensoryInfo);
	ball_size = get_float(&SensoryInfo);
	ball_decay = get_float(&SensoryInfo);
	ball_rand = get_float(&SensoryInfo);
	ball_weight = get_float(&SensoryInfo);
	ball_speed_max = get_float(&SensoryInfo);
	baccel_max = get_float(&SensoryInfo);
	dash_power_rate = get_float(&SensoryInfo);
	kick_power_rate = get_float(&SensoryInfo);
	kickable_margin = get_float(&SensoryInfo);
	ctl_radius = get_float(&SensoryInfo); 
	ctl_radius_width = get_float(&SensoryInfo);
	max_power = get_float(&SensoryInfo);
	min_power = get_float(&SensoryInfo);
	max_moment = get_float(&SensoryInfo);
	min_moment = get_float(&SensoryInfo);
	max_neck_moment = get_float(&SensoryInfo);
	min_neck_moment = get_float(&SensoryInfo);
	max_neck_angle = get_float(&SensoryInfo);
	min_neck_angle = get_float(&SensoryInfo);
	visible_angle = get_float(&SensoryInfo);
	feel_distance = get_float(&SensoryInfo);
	wind_dir = get_float(&SensoryInfo);
	wind_force = get_float(&SensoryInfo);
	wind_ang = get_float(&SensoryInfo);
	wind_rand  = get_float(&SensoryInfo);
	kickable_area = get_float(&SensoryInfo);
	catch_area_l = get_float(&SensoryInfo);
	catch_area_w = get_float(&SensoryInfo);
	catch_prob = get_float(&SensoryInfo);
	goalie_max_moves = get_int(&SensoryInfo);
	ckmargin = get_float(&SensoryInfo);
	offside_area = get_float(&SensoryInfo);
	win_no = get_float(&SensoryInfo);
	win_random = get_float(&SensoryInfo);
	say_coach_cnt_max = get_int(&SensoryInfo);
	say_coach_msg_size = get_int(&SensoryInfo);
	clang_win_size = get_int(&SensoryInfo);
	clang_define_win = get_int(&SensoryInfo);
	clang_meta_win = get_int(&SensoryInfo);
	clang_advice_win = get_int(&SensoryInfo);
	clang_info_win = get_int(&SensoryInfo);
	clang_mess_delay = get_int(&SensoryInfo);
	clang_mess_per_cycle = get_int(&SensoryInfo);
	half_time = get_int(&SensoryInfo);
	simulator_step = get_int(&SensoryInfo);
	send_step = get_int(&SensoryInfo);
	recv_step = get_int(&SensoryInfo);
	sense_body_step = get_int(&SensoryInfo);
	lcm_step = get_int(&SensoryInfo);
	say_msg_size = get_int(&SensoryInfo);
	hear_max = get_int(&SensoryInfo);
	hear_inc = get_int(&SensoryInfo);
	hear_decay = get_int(&SensoryInfo);
	catch_ban_cycle = get_int(&SensoryInfo);
	slow_down_factor = get_int(&SensoryInfo);
	use_offside = get_int(&SensoryInfo) == 1;
	forbid_kickoff_offside = get_int(&SensoryInfo) == 1;
	offside_kick_margin = get_float(&SensoryInfo);
	audio_cut_dist = get_float(&SensoryInfo);
	dist_qstep = get_float(&SensoryInfo);
	land_qstep = get_float(&SensoryInfo);
	
	dir_qstep = get_float(&SensoryInfo);
	dist_qstep_l = get_float(&SensoryInfo);
	dist_qstep_r = get_float(&SensoryInfo);
	land_qstep_l = get_float(&SensoryInfo);
	land_qstep_r = get_float(&SensoryInfo);
	dir_qstep_l = get_float(&SensoryInfo);
	dir_qstep_r = get_float(&SensoryInfo);
	if(dir_qstep < 0){
		dir_qstep = 0.1f;
	}
	
	coach_mode = get_int(&SensoryInfo) == 1;
	coach_w_referee_mode = get_int(&SensoryInfo) == 1;
	old_hear = get_int(&SensoryInfo) == 1;
	sv_step = get_int(&SensoryInfo);
	start_goal_l = get_int(&SensoryInfo);
	start_goal_r = get_int(&SensoryInfo);
	fullstate_l = (get_int(&SensoryInfo) == 1);
	fullstate_r = (get_int(&SensoryInfo) == 1);
	drop_ball_time = get_int(&SensoryInfo);
}

void ParseParamV8::Parse_PlayerParams(char *SensoryInfo){
	ParseParamV7::Parse_PlayerParams(SensoryInfo);
}

void ParseParamV8::Parse_PlayerTypes(char *SensoryInfo){
	ParseParamV7::Parse_PlayerTypes(SensoryInfo);
}

void ParseParamV8::Parse_ServerParams(char *SensoryInfo){
#ifdef	Version7_Compatible
	if (ServerParam::version < 8.0){
		ParseParamV7::Parse_ServerParams(SensoryInfo);
		return;
	}
#endif
	ParamReader paramreader;
	int i;
	for(i=0;ServerParam::OptionList[i].optname[0] != 0;	i++) 
		paramreader.AddItem(ServerParam::OptionList[i]);

	paramreader.ParseOptions(SensoryInfo);
	
	ServerParam::player_speed_max = Min(ServerParam::player_speed_max, ServerParam::max_power*ServerParam::dash_power_rate / ( 1-ServerParam::player_decay));
	//Don't do the following stuffs, it's already refreshed by server
	//ServerParam::simulator_step *= ServerParam::slow_down_factor;
	//ServerParam::send_vi_step	*= ServerParam::slow_down_factor;
	//ServerParam::send_step		*= ServerParam::slow_down_factor;
	//ServerParam::synch_offset	*= ServerParam::slow_down_factor;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -