📄 serversettings.cpp
字号:
// delta for adjusting dash_power_rate
dNewDashPowerRateDeltaMax = 0.002; // dash_power_rate_delta_max: maximum
// delta for adjusting dash_power_rate
dNewStaminaIncMaxDeltaFactor=-100000.0;// stamina_inc_max_delta_factor:
// amount by which delta is multiplied for
// stamina_inc_max
// important server parameters not in server.conf or player.conf
dEffortMax = 1.0; // effort_max: maximum player effort capacity
iSlowDownFactor = 1; // slow_down_factor: factor to slow down simulator
// and send intervals
dVisibleDistance = 3.0; // visible_distance: distance within which objects
// are always 'visible' even when not in view cone)
dExtraStamina = 0.0; // extra_stamina: extra stamina for heterogeneous
// player
// penalty parameters
dPenDistX = 11.0; // pen_dist_x: distance ball from goal
dPenMaxGoalieDistX = 4.0; // pen_goalie_max_dist_x: maximum distance
// for goalie during penalties
bPenAllowMultKicks = false; // pen_allow_mult_kicks: can penalty
// kicker kick multiple times
// tackle parameters
dTackleDist = 2.0; // tackle_dist: allowed distance in front
dTackleBackDist = 0.5; // tackle_back_dist: allowed distance back
dTackleWidth = 1.0; // tackle_width: allowed distance side
dTackleExponent = 6; // tackle_exponent: exponent need
iTackleCycles = 10; // tackle_cycles: cycles immobile
dTacklePowerRate = 0.027; // tackle_power_rate: power rate tackle
// parameters which depend on other values
dMaximalKickDist = dKickableMargin + // the maximum distance from a player
dPlayerSize + // for which the ball is kickable
dBallSize;
// add all the settings, i.e. each parameter
// becomes a new generic value for the class
// goal-related parameters
addSetting( "goal_width" , &dGoalWidth , GENERIC_VALUE_DOUBLE );
// player-related parameters
addSetting( "player_size" , &dPlayerSize , GENERIC_VALUE_DOUBLE );
addSetting( "player_decay" , &dPlayerDecay , GENERIC_VALUE_DOUBLE );
addSetting( "player_rand" , &dPlayerRand , GENERIC_VALUE_DOUBLE );
addSetting( "player_weight" , &dPlayerWeight , GENERIC_VALUE_DOUBLE );
addSetting( "player_speed_max" , &dPlayerSpeedMax , GENERIC_VALUE_DOUBLE );
addSetting( "player_accel_max" , &dPlayerAccelMax , GENERIC_VALUE_DOUBLE );
// stamina-related parameters
addSetting( "stamina_max" , &dStaminaMax , GENERIC_VALUE_DOUBLE );
addSetting( "stamina_inc_max" , &dStaminaIncMax , GENERIC_VALUE_DOUBLE );
addSetting( "recover_dec_thr" , &dRecoverDecThr , GENERIC_VALUE_DOUBLE );
addSetting( "recover_dec" , &dRecoverDec , GENERIC_VALUE_DOUBLE );
addSetting( "recover_min" , &dRecoverMin , GENERIC_VALUE_DOUBLE );
addSetting( "effort_dec_thr" , &dEffortDecThr , GENERIC_VALUE_DOUBLE );
addSetting( "effort_dec" , &dEffortDec , GENERIC_VALUE_DOUBLE );
addSetting( "effort_inc_thr" , &dEffortIncThr , GENERIC_VALUE_DOUBLE );
addSetting( "effort_inc" , &dEffortInc , GENERIC_VALUE_DOUBLE );
addSetting( "effort_min" , &dEffortMin , GENERIC_VALUE_DOUBLE );
// parameters related to auditory perception
addSetting( "hear_max" , &iHearMax , GENERIC_VALUE_INTEGER);
addSetting( "hear_inc" , &iHearInc , GENERIC_VALUE_INTEGER);
addSetting( "hear_decay" , &iHearDecay , GENERIC_VALUE_INTEGER);
// parameters related to player turn actions
addSetting( "inertia_moment" , &dInertiaMoment , GENERIC_VALUE_DOUBLE );
// parameters related to sense_body information
addSetting( "sense_body_step" , &iSenseBodyStep , GENERIC_VALUE_INTEGER);
// goalkeeper-related parameters
addSetting( "catchable_area_l" , &dCatchableAreaL , GENERIC_VALUE_DOUBLE );
addSetting( "catchable_area_w" , &dCatchableAreaW , GENERIC_VALUE_DOUBLE );
addSetting( "catch_probability" , &dCatchProbability, GENERIC_VALUE_DOUBLE );
addSetting( "catch_ban_cycle" , &iCatchBanCycle , GENERIC_VALUE_INTEGER);
addSetting( "goalie_max_moves" , &iGoalieMaxMoves , GENERIC_VALUE_INTEGER);
// ball-related parameters
addSetting( "ball_size" , &dBallSize , GENERIC_VALUE_DOUBLE );
addSetting( "ball_decay" , &dBallDecay , GENERIC_VALUE_DOUBLE );
addSetting( "ball_rand" , &dBallRand , GENERIC_VALUE_DOUBLE );
addSetting( "ball_weight" , &dBallWeight , GENERIC_VALUE_DOUBLE );
addSetting( "ball_speed_max" , &dBallSpeedMax , GENERIC_VALUE_DOUBLE );
addSetting( "ball_accel_max" , &dBallAccelMax , GENERIC_VALUE_DOUBLE );
// wind-related parameters
addSetting( "wind_force" , &dWindForce , GENERIC_VALUE_DOUBLE );
addSetting( "wind_dir" , &dWindDir , GENERIC_VALUE_DOUBLE );
addSetting( "wind_rand" , &dWindRand , GENERIC_VALUE_DOUBLE );
addSetting( "wind_random" , &bWindRandom , GENERIC_VALUE_BOOLEAN);
// parameters related to 'dash' and 'kick' commands
addSetting( "kickable_margin" , &dKickableMargin , GENERIC_VALUE_DOUBLE );
addSetting( "ckick_margin" , &dCkickMargin , GENERIC_VALUE_DOUBLE );
addSetting( "dash_power_rate" , &dDashPowerRate , GENERIC_VALUE_DOUBLE );
addSetting( "kick_power_rate" , &dKickPowerRate , GENERIC_VALUE_DOUBLE );
addSetting( "kick_rand" , &dKickRand , GENERIC_VALUE_DOUBLE );
// parameters related to visual and auditory perception range
addSetting( "visible_angle" , &dVisibleAngle , GENERIC_VALUE_DOUBLE );
addSetting( "audio_cut_dist" , &dAudioCutDist , GENERIC_VALUE_DOUBLE );
// quantization parameters
addSetting( "quantize_step" , &dQuantizeStep , GENERIC_VALUE_DOUBLE );
addSetting( "quantize_step_l" , &dQuantizeStepL , GENERIC_VALUE_DOUBLE );
// range parameters for basic actuator commands
addSetting( "maxpower" , &iMaxPower , GENERIC_VALUE_INTEGER);
addSetting( "minpower" , &iMinPower , GENERIC_VALUE_INTEGER);
addSetting( "maxmoment" , &iMaxMoment , GENERIC_VALUE_INTEGER);
addSetting( "minmoment" , &iMinMoment , GENERIC_VALUE_INTEGER);
addSetting( "maxneckmoment" , &iMaxNeckMoment , GENERIC_VALUE_INTEGER);
addSetting( "minneckmoment" , &iMinNeckMoment , GENERIC_VALUE_INTEGER);
addSetting( "maxneckang" , &iMaxNeckAng , GENERIC_VALUE_INTEGER);
addSetting( "minneckang" , &iMinNeckAng , GENERIC_VALUE_INTEGER);
// port-related parameters
addSetting( "port" , &iPort , GENERIC_VALUE_INTEGER);
addSetting( "coach_port" , &iCoachPort , GENERIC_VALUE_INTEGER);
addSetting( "ol_coach_port" , &iOlCoachPort , GENERIC_VALUE_INTEGER);
// coach-related parameters
addSetting( "say_coach_cnt_max" , &iSayCoachCntMax , GENERIC_VALUE_INTEGER);
addSetting( "say_coach_msg_size", &iSayCoachMsgSize , GENERIC_VALUE_INTEGER);
addSetting( "clang_win_size" , &iClangWinSize , GENERIC_VALUE_INTEGER);
addSetting( "clang_define_win" , &iClangDefineWin , GENERIC_VALUE_INTEGER);
addSetting( "clang_meta_win" , &iClangMetaWin , GENERIC_VALUE_INTEGER);
addSetting( "clang_advice_win" , &iClangAdviceWin , GENERIC_VALUE_INTEGER);
addSetting( "clang_info_win" , &iClangInfoWin , GENERIC_VALUE_INTEGER);
addSetting( "clang_mess_delay" , &iClangMessDelay , GENERIC_VALUE_INTEGER);
addSetting("clang_mess_per_cycle",&iClangMessPerCycle,GENERIC_VALUE_INTEGER);
addSetting( "send_vi_step" , &iSendViStep , GENERIC_VALUE_INTEGER);
// time-related parameters
addSetting( "simulator_step" , &iSimulatorStep , GENERIC_VALUE_INTEGER);
addSetting( "send_step" , &iSendStep , GENERIC_VALUE_INTEGER);
addSetting( "recv_step" , &iRecvStep , GENERIC_VALUE_INTEGER);
addSetting( "half_time" , &iHalfTime , GENERIC_VALUE_INTEGER);
addSetting( "drop_ball_time" , &iDropBallTime , GENERIC_VALUE_INTEGER);
// speech-related parameters
addSetting( "say_msg_size" , &iSayMsgSize , GENERIC_VALUE_INTEGER);
// offside-related parameters
addSetting( "use_offside" , &bUseOffside , GENERIC_VALUE_BOOLEAN);
addSetting( "offside_active_area_size", &dOffsideActiveAreaSize,
GENERIC_VALUE_DOUBLE );
addSetting( "forbid_kick_off_offside" , &bForbidKickOffOffside ,
GENERIC_VALUE_BOOLEAN);
addSetting( "offside_kick_margin",&dOffsideKickMargin,GENERIC_VALUE_DOUBLE );
// log-related parameters
addSetting( "verbose" , &bVerbose , GENERIC_VALUE_BOOLEAN);
addSetting( "record_version" , &iRecordVersion , GENERIC_VALUE_INTEGER);
addSetting( "record_log" , &bRecordLog , GENERIC_VALUE_BOOLEAN);
addSetting( "send_log" , &bSendLog , GENERIC_VALUE_BOOLEAN);
addSetting( "log_times" , &bLogTimes , GENERIC_VALUE_BOOLEAN);
addSetting( "log_file" , &strLogFile , GENERIC_VALUE_STRING );
addSetting( "synch_mode" , &bSynchMode , GENERIC_VALUE_BOOLEAN);
addSetting( "fullstate_l" , &bFullStateL , GENERIC_VALUE_BOOLEAN);
addSetting( "fullstate_r" , &bFullStateR , GENERIC_VALUE_BOOLEAN);
// heterogeneous player parameters from player.conf
addSetting( "player_types" , &iPlayerTypes , GENERIC_VALUE_INTEGER);
addSetting( "subs_max" , &iSubsMax , GENERIC_VALUE_INTEGER);
addSetting( "player_speed_max_delta_min" , &dPlayerSpeedMaxDeltaMin ,
GENERIC_VALUE_DOUBLE );
addSetting( "player_speed_max_delta_max" , &dPlayerSpeedMaxDeltaMax ,
GENERIC_VALUE_DOUBLE );
addSetting( "stamina_inc_max_delta_factor", &dStaminaIncMaxDeltaFactor,
GENERIC_VALUE_DOUBLE );
addSetting( "player_decay_delta_min" , &dPlayerDecayDeltaMin ,
GENERIC_VALUE_DOUBLE );
addSetting( "player_decay_delta_max" , &dPlayerDecayDeltaMax ,
GENERIC_VALUE_DOUBLE );
addSetting( "inertia_moment_delta_factor" , &dInertiaMomentDeltaFactor,
GENERIC_VALUE_DOUBLE );
addSetting( "dash_power_rate_delta_min" , &dDashPowerRateDeltaMin ,
GENERIC_VALUE_DOUBLE );
addSetting( "dash_power_rate_delta_max" , &dDashPowerRateDeltaMax ,
GENERIC_VALUE_DOUBLE );
addSetting( "player_size_delta_factor" , &dPlayerSizeDeltaFactor ,
GENERIC_VALUE_DOUBLE );
addSetting( "kickable_margin_delta_min" , &dKickableMarginDeltaMin ,
GENERIC_VALUE_DOUBLE );
addSetting( "kickable_margin_delta_max" , &dKickableMarginDeltaMax ,
GENERIC_VALUE_DOUBLE );
addSetting( "kick_rand_delta_factor" , &dKickRandDeltaFactor ,
GENERIC_VALUE_DOUBLE );
addSetting( "extra_stamina_delta_min" , &dExtraStaminaDeltaMin ,
GENERIC_VALUE_DOUBLE );
addSetting( "extra_stamina_delta_max" , &dExtraStaminaDeltaMax ,
GENERIC_VALUE_DOUBLE );
addSetting( "effort_max_delta_factor" , &dEffortMaxDeltaFactor ,
GENERIC_VALUE_DOUBLE );
addSetting( "effort_min_delta_factor" , &dEffortMinDeltaFactor ,
GENERIC_VALUE_DOUBLE );
addSetting( "new_dash_power_rate_delta_min", &dNewDashPowerRateDeltaMin ,
GENERIC_VALUE_DOUBLE );
addSetting( "new_dash_power_rate_delta_max", &dNewDashPowerRateDeltaMax ,
GENERIC_VALUE_DOUBLE );
addSetting( "new_stamina_inc_max_delta_factor", &dNewStaminaIncMaxDeltaFactor
,GENERIC_VALUE_DOUBLE );
// penalty parameters
addSetting( "pen_dist_x" , &dPenDistX , GENERIC_VALUE_DOUBLE );
addSetting("pen_goalie_max_dist_x",&dPenMaxGoalieDistX,GENERIC_VALUE_DOUBLE);
addSetting("pen_allow_mult_kicks",&bPenAllowMultKicks,GENERIC_VALUE_BOOLEAN);
// tackle parameters
addSetting( "tackle_dist" , &dTackleDist , GENERIC_VALUE_DOUBLE );
addSetting( "tackle_back_dist" , &dTackleBackDist , GENERIC_VALUE_DOUBLE );
addSetting( "tackle_width" , &dTackleWidth , GENERIC_VALUE_DOUBLE );
addSetting( "tackle_exponent" , &dTackleExponent , GENERIC_VALUE_DOUBLE );
addSetting( "tackle_cycles" , &iTackleCycles , GENERIC_VALUE_INTEGER);
addSetting( "tackle_power_rate" , &dTacklePowerRate , GENERIC_VALUE_DOUBLE );
// important server parameters not in server.conf or player.conf - are now
addSetting( "effort_max" , &dEffortMax , GENERIC_VALUE_DOUBLE );
addSetting( "slow_down_factor" , &iSlowDownFactor , GENERIC_VALUE_INTEGER);
addSetting( "visible_distance" , &dVisibleDistance , GENERIC_VALUE_DOUBLE );
addSetting( "extra_stamina" , &dExtraStamina , GENERIC_VALUE_DOUBLE );
// parameters which depend on other values
addSetting( "dMaximalKickDist" , &dMaximalKickDist , GENERIC_VALUE_DOUBLE );
}
/*! This method is originally defined in the superclass GenericValues and is
overridden in this subclass. It sets the variable denoted by the first
argument to the value denoted by the second argument.
\param strName a string representing the name of a variable for which the
value must be (re)set
\param strValue a string representing a value which must be assigned to the
variable denoted by the first argument
\return a boolean indicating whether the update was successful */
bool ServerSettings::setValue( const char *strName, const char *strValue )
{
// call to the superclass method
bool bReturn = GenericValues::setValue( strName, strValue );
// compute values for parameters which depend on others (reason for override)
dMaximalKickDist = ( dKickableMargin + dPlayerSize + dBallSize );
return ( bReturn );
}
/*! This method is originally defined in the superclass GenericValues and is
overridden in this subclass. It reads the values from a server
configuration file and assigns them to the proper variables in this class.
\param strFileName a string representing the name of a configuration file
\param strSeparator a string representing the separator between the name of
a variable and its value
\return a boolean indicating whether the values were read correctly */
bool ServerSettings::readValues( const char *strFileName,
const char *strSeparator )
{
// call to the superclass method
bool bReturn = GenericValues::readValues( strFileName, strSeparator );
// compute values for parameters which depend on others (reason for override)
dMaximalKickDist = ( dKickableMargin + dPlayerSize + dBallSize );
return ( bReturn );
}
/*! Set method for the 'dGoalWidth' member variable.
\param d a double value representing a new width of the goal
\return a boolean indicating whether the update was successful */
bool ServerSettings::setGoalWidth( double d )
{
dGoalWidth = d;
return ( true );
}
/*! Get method for the 'dGoalWidth' member variable.
\return the width of the goal */
double ServerSettings::getGoalWidth( ) const
{
return ( dGoalWidth );
}
/*! Set method for the 'dPlayerSize' member variable.
\param d a double value representing a new player size
\return a boolean indicating whether the update was successful */
bool ServerSettings::setPlayerSize( double d )
{
dPlayerSize = d;
// NOTE: also update parameters for which the value depends on this variable
dMaximalKickDist = ( dKickableMargin + dPlayerSize + dBallSize );
return ( true );
}
/*! Get method for the 'dPlayerSize' member variable.
\return the size (=radius) of a player */
double ServerSettings::getPlayerSize( ) const
{
return ( dPlayerSize );
}
/*! Set method for the 'dPlayerDecay' member variable.
\param d a double value representing a new player speed decay per cycle
\return a boolean indicating whether the update was successful */
bool ServerSettings::setPlayerDecay( double d )
{
dPlayerDecay = d;
return ( true );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -