From: <he...@us...> - 2012-04-08 21:39:40
|
Revision: 302 http://simspark.svn.sourceforge.net/simspark/?rev=302&view=rev Author: hedayat Date: 2012-04-08 21:39:34 +0000 (Sun, 08 Apr 2012) Log Message: ----------- Change teams' sides on the second half Modified Paths: -------------- trunk/rcssserver3d/ChangeLog trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h trunk/rcssserver3d/rcssserver3d/naosoccersim.rb Modified: trunk/rcssserver3d/ChangeLog =================================================================== --- trunk/rcssserver3d/ChangeLog 2012-04-07 07:22:30 UTC (rev 301) +++ trunk/rcssserver3d/ChangeLog 2012-04-08 21:39:34 UTC (rev 302) @@ -1,3 +1,10 @@ +2012-04-09 Hedayat Vatankhah <hed...@gm...> + + * plugin/soccer/soccerruleaspect/soccerruleaspect.h: + * plugin/soccer/soccerruleaspect/soccerruleaspect.cpp (SoccerRuleAspect::SwapTeamSides): + * rcssserver3d/naosoccersim.rb: + - change teams' sides in the second half if enabled (enabled by default) + 2012-04-07 Hedayat Vatankhah <hed...@gm...> * plugin/soccer/soccerruleaspect/soccerruleaspect.cpp (SoccerRuleAspect::UpdateGameOver): Modified: trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp =================================================================== --- trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2012-04-07 07:22:30 UTC (rev 301) +++ trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.cpp 2012-04-08 21:39:34 UTC (rev 302) @@ -50,6 +50,7 @@ mWaitBeforeKickOff(1.0), mSingleHalfTime(false), mAutomaticQuit(true), + mChangeSidesInSecondHalf(true), mSayMsgSize(20), mAudioCutDist(50.0), mFirstCollidingAgent(true), @@ -577,6 +578,20 @@ } void +SoccerRuleAspect::SwapTeamSides() +{ + SoccerBase::TAgentStateList agent_states; + if (! SoccerBase::GetAgentStates(*mBallState.get(), agent_states)) + return; + + SoccerBase::TAgentStateList::iterator it; + for (it = agent_states.begin(); it != agent_states.end(); ++it) + { + (*it)->SetTeamIndex(SoccerBase::OpponentTeam((*it)->GetTeamIndex())); + } +} + +void SoccerRuleAspect::ClearSelectedPlayers() { float min_dist = mFreeKickMoveDist; @@ -1183,6 +1198,8 @@ // the first game half is over mGameState->SetPlayMode(PM_BeforeKickOff); mGameState->SetGameHalf(GH_SECOND); + if (mChangeSidesInSecondHalf) + SwapTeamSides(); } } else if ((half == GH_SECOND) && (now >= 2 * mHalfTime)) @@ -1348,6 +1365,7 @@ SoccerBase::GetSoccerVar(*this,"WaitBeforeKickOff",mWaitBeforeKickOff); SoccerBase::GetSoccerVar(*this,"SingleHalfTime",mSingleHalfTime); SoccerBase::GetSoccerVar(*this,"AutomaticQuit",mAutomaticQuit); + SoccerBase::GetSoccerVar(*this,"ChangeSidesInSecondHalf",mChangeSidesInSecondHalf); SoccerBase::GetSoccerVar(*this,"UseOffside",mUseOffside); float penaltyLength, penaltyWidth; SoccerBase::GetSoccerVar(*this,"PenaltyLength",penaltyLength); Modified: trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h =================================================================== --- trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2012-04-07 07:22:30 UTC (rev 301) +++ trunk/rcssserver3d/plugin/soccer/soccerruleaspect/soccerruleaspect.h 2012-04-08 21:39:34 UTC (rev 302) @@ -248,6 +248,11 @@ */ void ClearPlayersBeforeKickOff(TTeamIndex idx); + /** + * swaps the side of the teams + */ + void SwapTeamSides(); + protected: /** reference to the body node of the Ball */ boost::shared_ptr<oxygen::RigidBody> mBallBody; @@ -298,6 +303,8 @@ bool mSingleHalfTime; /** flag if the simulator should quit automatically when the game is over */ bool mAutomaticQuit; + /** flag if the side of the teams should be changed in the second half*/ + bool mChangeSidesInSecondHalf; //FCP 2010 - New Parameters (added by FCPortugal for Singapure 2010) /** max time player may be sitted or laying down before being repositioned */ Modified: trunk/rcssserver3d/rcssserver3d/naosoccersim.rb =================================================================== --- trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2012-04-07 07:22:30 UTC (rev 301) +++ trunk/rcssserver3d/rcssserver3d/naosoccersim.rb 2012-04-08 21:39:34 UTC (rev 302) @@ -51,6 +51,7 @@ addSoccerVar('AutomaticKickOff', false) addSoccerVar('WaitBeforeKickOff', 2.0) addSoccerVar('AutomaticQuit', true) +addSoccerVar('ChangeSidesInSecondHalf', true) addSoccerVar('BorderSize', 0.0) # prevent complaining about missing variable # agent parameters This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |