本文整理汇总了C++中WorldModel::theirSide方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldModel::theirSide方法的具体用法?C++ WorldModel::theirSide怎么用?C++ WorldModel::theirSide使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldModel
的用法示例。
在下文中一共展示了WorldModel::theirSide方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: switch
/*!
*/
Formation::Ptr
Strategy::getFormation( const WorldModel & wm ) const
{
//
// play on
//
if ( wm.gameMode().type() == GameMode::PlayOn )
{
switch ( M_current_situation ) {
case Defense_Situation:
return M_defense_formation;
case Offense_Situation:
return M_offense_formation;
default:
break;
}
return M_normal_formation;
}
//
// kick in, corner kick
//
if ( wm.gameMode().type() == GameMode::KickIn_
|| wm.gameMode().type() == GameMode::CornerKick_ )
{
if ( wm.ourSide() == wm.gameMode().side() )
{
// our kick-in or corner-kick
return M_kickin_our_formation;
}
else
{
return M_setplay_opp_formation;
}
}
//
// our indirect free kick
//
if ( ( wm.gameMode().type() == GameMode::BackPass_
&& wm.gameMode().side() == wm.theirSide() )
|| ( wm.gameMode().type() == GameMode::IndFreeKick_
&& wm.gameMode().side() == wm.ourSide() ) )
{
return M_indirect_freekick_our_formation;
}
//
// opponent indirect free kick
//
if ( ( wm.gameMode().type() == GameMode::BackPass_
&& wm.gameMode().side() == wm.ourSide() )
|| ( wm.gameMode().type() == GameMode::IndFreeKick_
&& wm.gameMode().side() == wm.theirSide() ) )
{
return M_indirect_freekick_opp_formation;
}
//
// after foul
//
if ( wm.gameMode().type() == GameMode::FoulCharge_
|| wm.gameMode().type() == GameMode::FoulPush_ )
{
if ( wm.gameMode().side() == wm.ourSide() )
{
//
// opponent (indirect) free kick
//
if ( wm.ball().pos().x < ServerParam::i().ourPenaltyAreaLineX() + 1.0
&& wm.ball().pos().absY() < ServerParam::i().penaltyAreaHalfWidth() + 1.0 )
{
return M_indirect_freekick_opp_formation;
}
else
{
return M_setplay_opp_formation;
}
}
else
{
//
// our (indirect) free kick
//
if ( wm.ball().pos().x > ServerParam::i().theirPenaltyAreaLineX()
&& wm.ball().pos().absY() < ServerParam::i().penaltyAreaHalfWidth() )
{
return M_indirect_freekick_our_formation;
}
else
{
return M_setplay_our_formation;
}
}
}
//
//.........这里部分代码省略.........