You can subscribe to this list here.
2003 |
Jan
(23) |
Feb
(10) |
Mar
(25) |
Apr
(16) |
May
(10) |
Jun
(2) |
Jul
(7) |
Aug
|
Sep
|
Oct
(6) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(9) |
Aug
(5) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
From: Tom H. <tom...@us...> - 2003-03-21 16:06:53
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv27758 Modified Files: ChangeLog Log Message: 2003-03-21 Tom Howard <tom...@us...> * ./src/Makefile.am * ./src/RC.epdf * ./src/RC.eps * ./src/RC.tif * ./src/RC.xcf * ./src/doxygen.sty * ./src/header.tex.tmpl Spruced up pdf and ps docs. Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** ChangeLog 20 Mar 2003 12:21:21 -0000 1.61 --- ChangeLog 21 Mar 2003 16:06:50 -0000 1.62 *************** *** 1,2 **** --- 1,13 ---- + 2003-03-21 Tom Howard <tom...@us...> + + * ./src/Makefile.am + * ./src/RC.epdf + * ./src/RC.eps + * ./src/RC.tif + * ./src/RC.xcf + * ./src/doxygen.sty + * ./src/header.tex.tmpl + Spruced up pdf and ps docs. + 2003-03-20 Tom Howard <tom...@us...> |
From: Tom H. <tom...@us...> - 2003-03-20 12:45:45
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv12430 Modified Files: ChangeLog Log Message: 2003-03-20 Tom Howard <tom...@us...> * ./src/style.css Playing with style Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** ChangeLog 20 Mar 2003 11:58:49 -0000 1.60 --- ChangeLog 20 Mar 2003 12:21:21 -0000 1.61 *************** *** 1,4 **** --- 1,9 ---- 2003-03-20 Tom Howard <tom...@us...> + * ./src/style.css + Playing with style + + 2003-03-20 Tom Howard <tom...@us...> + * ./src/rccparser.h Added more docs |
From: Tom H. <tom...@us...> - 2003-03-20 12:44:57
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv12430/src Modified Files: style.css Log Message: 2003-03-20 Tom Howard <tom...@us...> * ./src/style.css Playing with style Index: style.css =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/style.css,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** style.css 3 Feb 2003 13:47:43 -0000 1.1 --- style.css 20 Mar 2003 12:21:21 -0000 1.2 *************** *** 37,40 **** --- 37,52 ---- } + .md + { + color: white; + background: #009900; + } + + .mdname + { + color: white; + background: #009900; + font-style: oblique; + } img.header { |
From: Tom H. <tom...@us...> - 2003-03-20 11:58:52
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv2048/src Modified Files: rccparser.h Log Message: 2003-03-20 Tom Howard <tom...@us...> * ./src/rccparser.h Added more docs Index: rccparser.h =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparser.h,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** rccparser.h 19 Mar 2003 18:40:34 -0000 1.28 --- rccparser.h 20 Mar 2003 11:58:49 -0000 1.29 *************** *** 7578,7582 **** * * \pre An entire illegal mode ! * message has been parsed. * */ --- 7578,7582 ---- * * \pre An entire illegal mode ! * error message has been parsed. * */ *************** *** 7598,7602 **** * * \pre An entire illegal object form ! * message has been parsed. * */ --- 7598,7602 ---- * * \pre An entire illegal object form ! * error message has been parsed. * */ *************** *** 7605,7640 **** --- 7605,7775 ---- doBuildIllegalObjectFormError() {} + /** This function is called after parsing a said too many freeform + * error message. + * + * Override this function in your subclass to handle + * said too many freeform error messages. + * + * \pre The client is an online coach + * + * \pre The client has sent a freeform CLang message and exceeded + * it's current quota + * + * \pre An entire said too many freeform + * error message has been parsed. + * + */ virtual void doBuildSaidTooManyFreeformMessagesError() {} + /** This function is called after parsing a cannot say freeform + * error message. + * + * Override this function in your subclass to handle + * cannot say freeform error messages. + * + * \pre The client is an online coach + * + * \pre The client has sent a freeform CLang message and the playmode + * is playon. + * + * \pre An entire cannot say freeform + * error message has been parsed. + * + */ virtual void doBuildCannotSayFreeformWhilePlayonError() {} + /** This function is called after parsing a said too many meta + * error message. + * + * Override this function in your subclass to handle + * said too many meta error messages. + * + * \pre The client is an online coach + * + * \pre The client has sent a meta CLang message and exceeded + * it's current quota + * + * \pre An entire said too many meta + * error message has been parsed. + * + */ virtual void doBuildSaidTooManyMetaMessagesError() {} + /** This function is called after parsing a said too many advice + * error message. + * + * Override this function in your subclass to handle + * said too many advice error messages. + * + * \pre The client is an online coach + * + * \pre The client has sent a advice CLang message and exceeded + * it's current quota + * + * \pre An entire said too many advice + * error message has been parsed. + * + */ virtual void doBuildSaidTooManyAdviceMessagesError() {} + /** This function is called after parsing a said too many info + * error message. + * + * Override this function in your subclass to handle + * said too many info error messages. + * + * \pre The client is an online coach + * + * \pre The client has sent a info CLang message and exceeded + * it's current quota + * + * \pre An entire said too many info + * error message has been parsed. + * + */ virtual void doBuildSaidTooManyInfoMessagesError() {} + /** This function is called after parsing a said too many define + * error message. + * + * Override this function in your subclass to handle + * said too many define error messages. + * + * \pre The client is an online coach + * + * \pre The client has sent a define CLang message and exceeded + * it's current quota + * + * \pre An entire said too many define + * error message has been parsed. + * + */ virtual void doBuildSaidTooManyDefineMessagesError() {} + /** This function is called after parsing a cound not parse say + * error message. + * + * Override this function in your subclass to handle + * cound not parse say error messages. + * + * \pre The client is an online coach + * + * \pre The client has sent a malformed CLang message + * + * \pre An entire cound not parse say + * error message has been parsed. + * + */ virtual void doBuildCouldNotParseSayError() {} + /** This function is called after parsing a said too many + * error message. + * + * Override this function in your subclass to handle + * said too many error messages. + * + * \pre The client is an online coach + * + * \pre The client is using a pre version 7 protocol (this isn't + * actually supported with this parser) + * + * \pre An entire said too many + * error message has been parsed. + * + */ virtual void doBuildSaidTooManyMessagesError() {} + /** This function is called after parsing an unknown + * error message. + * + * Override this function in your subclass to handle + * unknown error messages. + * + * Unknown error message only occur when the parser is used with a + * newer version of the simulator and the parser has not been + * updated. By using this function you can provide support in your + * teams for new error messages without having to wait for the parser + * to be upgraded. + * + * \pre An entire unknown erro + * message has been parsed. + * + */ virtual void |
From: Tom H. <tom...@us...> - 2003-03-20 11:58:52
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv2048 Modified Files: ChangeLog Log Message: 2003-03-20 Tom Howard <tom...@us...> * ./src/rccparser.h Added more docs Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** ChangeLog 19 Mar 2003 18:40:29 -0000 1.59 --- ChangeLog 20 Mar 2003 11:58:49 -0000 1.60 *************** *** 1,2 **** --- 1,7 ---- + 2003-03-20 Tom Howard <tom...@us...> + + * ./src/rccparser.h + Added more docs + 2003-03-19 Tom Howard <tom...@us...> |
From: Tom H. <tom...@us...> - 2003-03-19 18:59:45
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv7331/src Modified Files: rcclexer.lpp rccparse.ypp rccparser.h Log Message: 2003-03-19 Tom Howard <tom...@us...> * ./src/rcclexer.lpp * ./src/rccparse.ypp * ./src/rccparser.h More docs added. V8 Player audios no longer call redundant side functions Index: rcclexer.lpp =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rcclexer.lpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** rcclexer.lpp 14 Feb 2003 11:50:10 -0000 1.6 --- rcclexer.lpp 19 Mar 2003 18:40:31 -0000 1.7 *************** *** 151,154 **** --- 151,158 ---- free_kick_fault_l { return FREE_KICK_FAULT_LEFT_KW; } free_kick_fault_r { return FREE_KICK_FAULT_RIGHT_KW; } + catch_fault_l { return CATCH_FAULT_LEFT_KW; } + cacth_fault_r { return CATCH_FAULT_RIGHT_KW; } + indirect_free_kick_l { return INDIRECT_FREE_KICK_LEFT_KW; } + indirect_free_kick_r { return INDIRECT_FREE_KICK_RIGHT_KW; } penalty_setup_l { return PENALTY_SETUP_LEFT_KW; } penalty_setup_r { return PENALTY_SETUP_RIGHT_KW; } Index: rccparse.ypp =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparse.ypp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** rccparse.ypp 14 Feb 2003 11:50:10 -0000 1.8 --- rccparse.ypp 19 Mar 2003 18:40:32 -0000 1.9 *************** *** 237,240 **** --- 237,244 ---- %token FREE_KICK_FAULT_LEFT_KW %token FREE_KICK_FAULT_RIGHT_KW + %token CATCH_FAULT_LEFT_KW + %token CATCH_FAULT_RIGHT_KW + %token INDIRECT_FREE_KICK_LEFT_KW + %token INDIRECT_FREE_KICK_RIGHT_KW %token PENALTY_SETUP_LEFT_KW %token PENALTY_SETUP_RIGHT_KW *************** *** 433,436 **** --- 437,448 ---- | FREE_KICK_FAULT_RIGHT_KW { PARAM.buildFreeKickFaultRightPlayMode(); } + | CATCH_FAULT_LEFT_KW + { PARAM.buildCatchFaultLeftPlayMode(); } + | CATCH_FAULT_RIGHT_KW + { PARAM.buildCatchFaultRightPlayMode(); } + | INDIRECT_FREE_KICK_LEFT_KW + { PARAM.buildIndirectFreeKickLeftPlayMode(); } + | INDIRECT_FREE_KICK_RIGHT_KW + { PARAM.buildIndirectFreeKickRightPlayMode(); } | PENALTY_SETUP_LEFT_KW { PARAM.buildPenaltySetupLeftPlaymode(); } *************** *** 1290,1299 **** getString( $5 ) ); } ! | LP HEAR_KW INT REAL side QSTR RP { PARAM.buildPlayerAudio( getInt( $3 ), getDouble( $4 ), getString( $6 ) ); } ! | LP HEAR_KW INT REAL side INT QSTR RP { PARAM.buildPlayerAudio( getInt( $3 ), getDouble( $4 ), --- 1302,1311 ---- getString( $5 ) ); } ! | LP HEAR_KW INT REAL OPP_KW QSTR RP { PARAM.buildPlayerAudio( getInt( $3 ), getDouble( $4 ), getString( $6 ) ); } ! | LP HEAR_KW INT REAL OUR_KW INT QSTR RP { PARAM.buildPlayerAudio( getInt( $3 ), getDouble( $4 ), *************** *** 1301,1309 **** getString( $7 ) ); } ! | LP HEAR_KW INT side RP { PARAM.buildPlayerAudio( getInt( $3 ) ); } ! | LP HEAR_KW INT side INT RP { PARAM.buildPlayerAudio( getInt( $3 ), --- 1313,1321 ---- getString( $7 ) ); } ! | LP HEAR_KW INT OPP_KW RP { PARAM.buildPlayerAudio( getInt( $3 ) ); } ! | LP HEAR_KW INT OUR_KW INT RP { PARAM.buildPlayerAudio( getInt( $3 ), Index: rccparser.h =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparser.h,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** rccparser.h 14 Feb 2003 11:50:10 -0000 1.27 --- rccparser.h 19 Mar 2003 18:40:34 -0000 1.28 *************** *** 550,553 **** --- 550,569 ---- void + buildCatchFaultLeftPlayMode() + { M_parser.doBuildCatchFaultLeftPlayMode(); } + + void + buildCatchFaultRightPlayMode() + { M_parser.doBuildCatchFaultRightPlayMode(); } + + void + buildIndirectFreeKickLeftPlayMode() + { M_parser.doBuildIndirectFreeKickLeftPlayMode(); } + + void + buildIndirectFreeKickRightPlayMode() + { M_parser.doBuildIndirectFreeKickRightPlayMode(); } + + void buildPenaltySetupLeftPlaymode() { M_parser.doBuildPenaltySetupLeftPlaymode(); } *************** *** 3024,3027 **** --- 3040,3059 ---- virtual void + doBuildCatchFaultLeftPlayMode() {} + + virtual + void + doBuildCatchFaultRightPlayMode() {} + + virtual + void + doBuildIndirectFreeKickLeftPlayMode() {} + + virtual + void + doBuildIndirectFreeKickRightPlayMode() {} + + virtual + void doBuildPenaltySetupLeftPlaymode() {} *************** *** 6689,6700 **** --- 6721,6787 ---- //! \name Coach Visual Parsing Functions //@{ + /** This function is called after parsing a coach visual message. + * + * Override this function in your subclass to handle coach visual + * messages. + * + * \param time The time (in server cycles) that the coach visual + * message was sent by the simulator. + * + * \pre The client is a coach player. + * + * \pre An entire coach visual message has been parsed. + * + */ virtual void doBuildGlobalVisual( int time ) {} + /** This function is called after parsing a goal section + * of a coach visual message. + * + * Override this function in your subclass to handle goal + * sections of a coach visual message. + * + * \param x The x co-ordinate of the goal. + * \param y The y co-ordinate of the goal. + * + * \pre The client is a coach. + * + * \pre An entire goal section of coach visual message has + * been parsed. + * + * \pre A coach visual message is being parsed. + * + * \sa + * - doBuildGlobalVisual( int time ) + */ virtual void doBuildGlobalGoal( double x, double y ) {} + /** This function is called after parsing a ball section + * of a coach visual message. + * + * Override this function in your subclass to handle ball + * sections of a coach visual message. + * + * \param x The x co-ordinate of the ball. + * \param y The y co-ordinate of the ball. + * \param delta_x The magnitude of the ball's velociy along the + * x co-ordinate. + * \param delta_y The magnitude of the ball's velociy along the + * y co-ordinate. + * + * \pre The client is a coach. + * + * \pre An entire ball section of coach visual message has + * been parsed. + * + * \pre A coach visual message is being parsed. + * + * \sa + * - doBuildGlobalVisual( int time ) + */ virtual void *************** *** 6702,6705 **** --- 6789,6825 ---- double delta_x, double delta_y ) {} + /** This function is called after parsing a player section + * of a coach visual message, where the player is pointing. + * + * Override this function in your subclass to handle pointing player + * sections of a coach visual message. + * + * \note This function deprecates doBuildGlobalPlayer( x, y, + delta_x, delta_y, + orientation, head_orientation ). + * + * \param x The x co-ordinate of the player. + * \param y The y co-ordinate of the player. + * \param delta_x The magnitude of the player's velociy along the + * x co-ordinate. + * \param delta_y The magnitude of the player's velociy along the + * y co-ordinate. + * \param orientation The direction the player's body is facing. + * \param head_orientation The direction the player's head is facing. + * \param point_dir The direction the player is pointing in. + * \param tackle True if the player is tackling. False otherwise. + * + * \pre The player is pointing. + * + * \pre The client is a coach. + * + * \pre An entire player section of coach visual message has + * been parsed. + * + * \pre A coach visual message is being parsed. + * + * \sa + * - doBuildGlobalVisual( int time ) + */ virtual void *************** *** 6714,6717 **** --- 6834,6869 ---- } + /** This function is called after parsing a non-pointing player section + * of a coach visual message. + * + * Override this function in your subclass to handle non-pointing player + * sections of a coach visual message. + * + * \note This function deprecates doBuildGlobalPlayer( x, y, + delta_x, delta_y, + orientation, head_orientation ). + * + * \param x The x co-ordinate of the player. + * \param y The y co-ordinate of the player. + * \param delta_x The magnitude of the player's velociy along the + * x co-ordinate. + * \param delta_y The magnitude of the player's velociy along the + * y co-ordinate. + * \param orientation The direction the player's body is facing. + * \param head_orientation The direction the player's head is facing. + * \param tackle True if the player is tackling. False otherwise. + * + * \pre The player is not pointing. + * + * \pre The client is a coach. + * + * \pre An entire player section of coach visual message has + * been parsed. + * + * \pre A coach visual message is being parsed. + * + * \sa + * - doBuildGlobalVisual( int time ) + */ virtual void *************** *** 6727,6731 **** ! // kept for src compatibility virtual void --- 6879,6917 ---- ! /** This function is called after parsing a player section ! * of a coach visual message. ! * ! * Override this function in your subclass to handle player ! * sections of a coach visual message. ! * ! * \warning This function deprecated. Use ! doBuildGlobalPlayer( double x, double y, ! double delta_x, double delta_y, ! double orientation, double head_orientation, ! double point_dir, bool tackle ) and ! doBuildGlobalPlayer( double x, double y, ! double delta_x, double delta_y, ! double orientation, double head_orientation, ! bool tackle ) instead. ! * ! * \param x The x co-ordinate of the player. ! * \param y The y co-ordinate of the player. ! * \param delta_x The magnitude of the player's velociy along the ! * x co-ordinate. ! * \param delta_y The magnitude of the player's velociy along the ! * y co-ordinate. ! * \param orientation The direction the player's body is facing. ! * \param head_orientation The direction the player's head is facing. ! * ! * \pre The client is a coach. ! * ! * \pre An entire player section of coach visual message has ! * been parsed. ! * ! * \pre A coach visual message is being parsed. ! * ! * \sa ! * - doBuildGlobalVisual( int time ) ! */ virtual void *************** *** 6767,6794 **** --- 6953,7073 ---- doBuildFlagOffset( int offset ) {} + + /** This function is called after parsing a top location of + * a field object or a visual + * + * Override this function in your subclass to handle top + * field locations. + * + * \pre A top loation of a field object has been parsed. + * + * \pre A field object is being parsed. + * + * \pre A a visual message is being parsed. + * + */ virtual void doBuildTopLocation() {} + + /** This function is called after parsing a bottom location of + * a field object or a visual + * + * Override this function in your subclass to handle bottom + * field locations. + * + * \pre A bottom loation of a field object has been parsed. + * + * \pre A field object is being parsed. + * + * \pre A a visual message is being parsed. + * + */ virtual void doBuildBottomLocation() {} + /** This function is called after parsing a left location of + * a field object or a visual + * + * Override this function in your subclass to handle left + * field locations. + * + * \pre A left loation of a field object has been parsed. + * + * \pre A field object is being parsed. + * + * \pre A a visual message is being parsed. + * + */ virtual void doBuildLeftLocation() {} + /** This function is called after parsing a right location of + * a field object or a visual + * + * Override this function in your subclass to handle right + * field locations. + * + * \pre A right loation of a field object has been parsed. + * + * \pre A field object is being parsed. + * + * \pre A a visual message is being parsed. + * + */ virtual void doBuildRightLocation() {} + /** This function is called after parsing a center location of + * a field object or a visual + * + * Override this function in your subclass to handle center + * field locations. + * + * \pre A center loation of a field object has been parsed. + * + * \pre A field object is being parsed. + * + * \pre A a visual message is being parsed. + * + */ virtual void doBuildCenterLocation() {} + /** This function is called after parsing a penalty location of + * a field object or a visual + * + * Override this function in your subclass to handle penalty + * field locations. + * + * \pre A penalty loation of a field object has been parsed. + * + * \pre A field object is being parsed. + * + * \pre A a visual message is being parsed. + * + */ virtual void doBuildPenaltyLocation() {} + /** This function is called after parsing a goal location of + * a field object or a visual + * + * Override this function in your subclass to handle goal + * field locations. + * + * \pre A goal loation of a field object has been parsed. + * + * \pre A field object is being parsed. + * + * \pre A a visual message is being parsed. + * + */ virtual void *************** *** 6796,6811 **** --- 7075,7120 ---- //@} + /** This function is called after parsing a team name. + * + * Override this function in your subclass to handle team names. + * + * \pre A team name has been parsed. + * + */ virtual void doBuildTeamName( const std::string& name ) {} + /** This function is called after parsing a uniform number. + * + * Override this function in your subclass to handle uniform numbers. + * + * \pre A uniform number has been parsed. + * + */ virtual void doBuildUNum( int unum ) {} + /** This function is called after parsing a goalie indicator of a + * player name. + * + * Override this function in your subclass to handle goalie + * indicators. + * + * \pre A goalie inidicator has been parsed. + * + */ virtual void doBuildGoalie() {} + /** This function is called after parsing a score message + * + * Override this function in your subclass to handle score messages + * + * \pre An entire score message has been parsed. + * + */ virtual void *************** *** 6815,6826 **** --- 7124,7165 ---- //! \name Initialisation Parsing Functions //@{ + /** This function is called after parsing a player init message + * + * Override this function in your subclass to handle player + * init messages + * + * \pre The client is a field player + * + * \pre An entire player init message has been parsed. + * + */ virtual void doBuildInit( int unum ) {} + /** This function is called after parsing an online coach init message + * + * Override this function in your subclass to handle player + * online coach init messages + * + * \pre The client is an online coach + * + * \pre An entire online coach init message has been parsed. + * + */ virtual void doBuildInit() {} + /** This function is called after parsing an offline coach init message + * + * Override this function in your subclass to handle player + * offline coach init messages + * + * \pre The client is an offline coach + * + * \pre An entire offline coach init message has been parsed. + * + */ virtual void *************** *** 6832,6859 **** --- 7171,7280 ---- //! \name Audio Parsing Functions //@{ + /** This function is called after parsing an offline coach or + * non-CLang online coach audio message + * + * Override this function in your subclass to handle offline or + * non-CLang online coach audio messages. + * + * \pre An entire offline coach or non-Clang online coach audio + * message has been parsed. + * + */ virtual void doBuildCoachAudio( int time, const std::string& msg ) {} + /** This function is called after parsing a non-goal referee message + * + * Override this function in your subclass to handle non-goal referee + * messages. + * + * \pre An entire non-goal referee message has been parsed. + * + */ virtual void doBuildRefAudio( int time ) {} + /** This function is called after parsing a goal referee message + * + * Override this function in your subclass to handle goal referee + * messages. + * + * \pre An entire goal referee message has been parsed. + * + */ virtual void doBuildGoalRefAudio( int time, int score ) {} + /** This function is called after parsing an unknown referee message. + * This will normally only be called if new referee messages have + * been added to the simulator, but not to this parser. By using + * this function you can provide support in your team for the new + * messages without having to wait for the parser to be updated. + * + * Override this function in your subclass to handle unknown referee + * messages. + * + * \pre An entire unknown referee message has been parsed. + * + */ virtual void doBuildUnknownRefAudio( int time, const std::string& message ) {} + /** This function is called after parsing a version 7 player audio + * message or a version 8 opponent player audio message, where + * the client is a field player. + * + * Override this function in your subclass to handle version 7 player + * audio or version 8 opponent player audio messages. + * + * \pre The client is a field player + * + * \pre Either: + * - The client is using protocol version 7, or + * - The audio message is from an opponent + * + * \pre An entire version 7 player audio or version 8 opponent player + * audio message has been parsed. + * + */ virtual void doBuildPlayerAudio( int time, double dir, const std::string& msg ) {} + /** This function is called after parsing a player audio message, + * where the client is an online coach. + * + * Override this function in your subclass to player audio + * messages to online coaches + * + * \pre The client is an online coach + * + * \pre An entire player audio message has been parsed. + * + */ virtual void doBuildPlayerAudio( int time, const std::string& msg ) {} + /** This function is called after parsing a version 8 team-mate + * player audio message, where the client is a field player. + * + * Override this function in your subclass to handle version 8 + * team-mate player audio messages. + * + * \pre The client is a field player + * + * \pre The client is using protocol version 8 + * + * \pre The message is from a team-mate + * + * \pre An entire version 8 team-mate player audio message has + * been parsed. + * + */ virtual void *************** *** 6861,6872 **** --- 7282,7344 ---- const std::string& msg ) {} + /** This function is called after parsing a version 8 team-mate + * player audio message, where the client is a field player and + * the client has already received a team-mate player audio message + * this cycle + * + * Override this function in your subclass to handle version 8 + * incomplete team-mate player audio messages. + * + * \pre The client is a field player + * + * \pre The client is using protocol version 8 + * + * \pre The message is from a team-mate + * + * \pre An entire version 8 incomplete team-mate player audio + * message has been parsed. + * + */ virtual void doBuildPlayerAudio( int time, int unum ) {} + /** This function is called after parsing a version 8 opponent + * player audio message, where the client is a field player and + * the client has already received an opponent player audio message + * this cycle + * + * Override this function in your subclass to handle version 8 + * incomplete opponent player audio messages. + * + * \pre The client is a field player + * + * \pre The client is using protocol version 8 + * + * \pre The message is from an opponent + * + * \pre An entire version 8 incomplete opponent player audio + * message has been parsed. + * + */ virtual void doBuildPlayerAudio( int time ) {} + /** This function is called after parsing a player audio message, + * where the client is a field player and the message was sent by + * the client. + * + * Override this function in your subclass to handle self player audio + * messages + * + * \pre The client is a field player + * + * \pre The message is from the client + * + * \pre An entire self player audio + * message has been parsed. + * + */ virtual void *************** *** 6878,6885 **** --- 7350,7385 ---- //! \name Substitution Parsing Functions //@{ + /** This function is called after parsing a substitutution message, + * where the player being sub'ed is a team-mate + * + * Override this function in your subclass to handle team-mate + * substitution messages. + * + * \pre The client is a field player + * + * \pre A team-mate has been substituted. + * + * \pre An entire team-mate substitution + * message has been parsed. + * + */ virtual void doBuildSubstitution( int unum, int type ) {} + /** This function is called after parsing a substitutution message, + * where the player being sub'ed is an opponent + * + * Override this function in your subclass to handle opponent + * substitution messages. + * + * \pre The client is a field player + * + * \pre An opponent has been substituted. + * + * \pre An entire opponent substitution + * message has been parsed. + * + */ virtual void *************** *** 6891,6930 **** --- 7391,7604 ---- //! \name Error Parsing Functions //@{ + /** This function is called after parsing a can't reconnect error + * message. + * + * Override this function in your subclass to handle can't reconnect + * error messages. + * + * \pre The client is a field player + * + * \pre The client has sent a reconnect message. + * + * \pre The server is in play-on playmode + * + * \pre An entire can't reconnect error + * message has been parsed. + * + */ virtual void doBuildCantReconnect() {} + /** This function is called after parsing a reconnection error + * message. + * + * Override this function in your subclass to handle reconnection + * error messages. + * + * \pre The client is a field player + * + * \pre The client has sent a reconnect message. + * + * \pre Either: + * - There was an error in the reconnect message, + * - There was an error connecting to the clients socket, or + * - The team-name and uniform number do not match any + * field player + * + * \pre An entire reconnection error + * message has been parsed. + * + */ virtual void doBuildInitError() {} + /** This function is called after parsing a player initialisation error + * message. + * + * Override this function in your subclass to handle player initialisation + * error messages. + * + * \pre The client is a field player + * + * \pre The client has sent an init message. + * + * \pre Either: + * - There was an error in the init message, + * - There were illegal characters in the team-name, + * - The team-name was too long, + * - There are two teams already connected and the team-name + * matched neither, + * - There are already 11 players connected for the team + * specified, + * - The client tried to connect as a goalie and the team + * specified already has a goalie connected, + * - The client tried to connect with a non-existant protocol + * version, or + * - There was an error connecting to the clients socket. + * + * \pre An entire player initialisation error + * message has been parsed. + * + */ virtual void doBuildNoMoreTeamOrPlayerOrGoalieError() {} + /** This function is called after parsing an online coach + * initialisation error message. + * + * Override this function in your subclass to handle online coach + * initialisation error messages. + * + * \pre The client is an online coach. + * + * \pre The client has sent an init message. + * + * \pre Either: + * - There was an error in the init message, + * - The version number specified was less than 5, + * - The team-name specified was too long, + * - The team-name specified does not match any team that is + * connected, + * - The specified team already has a coach connected, + * - The client tried to connect with a non-existant protocol + * version, or + * - There was an error connecting to the clients socket. + * + * \pre An entire coach initialisation error + * message has been parsed. + * + */ virtual void doBuildNoSuchTeamOrAlreadyHaveCoachError() {} + /** This function is called after parsing a too many moves error message. + * + * Override this function in your subclass to handle too many moves + * error messages. + * + * \pre The client is a field player. + * + * \pre The client is a goalie. + * + * \pre The client has caught the ball. + * + * \pre The client has already moved the prescribed maximum amount of + * times while the ball is caught and another move command was + * sent. + * + * \pre An entire too many moves error + * message has been parsed. + * + */ virtual void doBuildTooManyMovesError() {} + /** This function is called after parsing an unknown command error message. + * + * Override this function in your subclass to handle unknown command + * error messages. + * + * \pre The client has send a command that the server does not + * recognise + * + * \pre An entire unknown commad error + * message has been parsed. + * + */ virtual void doBuildUnknownCommandError() {} + /** This function is called after parsing an illegal command form error message. + * + * Override this function in your subclass to handle illegal command form + * error messages. + * + * \pre The client has sent a command whoes format does not match + * that expected by the server + * + * \pre An entire illegal command form error + * message has been parsed. + * + */ virtual void doBuildIllegalCommandError() {} + /** This function is called after parsing a say too long error message. + * + * Override this function in your subclass to handle say too long + * error messages. + * + * \pre The client has sent a say command and the message is longer than those prescribed by the server. + * + * \pre An entire say too long error + * message has been parsed. + * + */ virtual void doBuildSayMessageTooLongError() {} + /** This function is called after parsing an illegal mode error + * message. + * + * Override this function in your subclass to handle illegal mode + * error messages. + * + * \pre The client is an offline coach + * + * \pre The client has sent a change_mode message with a playmode + * of PM_Null + * + * \pre An entire illegal mode + * message has been parsed. + * + */ virtual void doBuildIllegalModeError() {} + /** This function is called after parsing an illegal object form error + * message. + * + * Override this function in your subclass to handle illegal object + * form error messages. + * + * \pre The client is an offline coach + * + * \pre The client has sent a move message, where the the name of the + * object to be moved is not in the format expected by the + * server. + * + * \pre An entire illegal object form + * message has been parsed. + * + */ virtual void |
From: Tom H. <tom...@us...> - 2003-03-19 18:57:01
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv7331 Modified Files: ChangeLog NEWS Log Message: 2003-03-19 Tom Howard <tom...@us...> * ./src/rcclexer.lpp * ./src/rccparse.ypp * ./src/rccparser.h More docs added. V8 Player audios no longer call redundant side functions Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.58 retrieving revision 1.59 diff -C2 -d -r1.58 -r1.59 *** ChangeLog 14 Feb 2003 11:50:10 -0000 1.58 --- ChangeLog 19 Mar 2003 18:40:29 -0000 1.59 *************** *** 1,2 **** --- 1,17 ---- + 2003-03-19 Tom Howard <tom...@us...> + + * ./src/rcclexer.lpp + * ./src/rccparse.ypp + * ./src/rccparser.h + More docs added. V8 Player audios no longer call redundant side + functions + + 2003-02-14 Tom Howard <tom...@us...> + + * ./src/rcclexer.lpp + * ./src/rccparse.ypp + * ./src/rccparser.h + Added new catch_fault and indirect_free_kick play modes + 2003-02-14 Tom Howard <tom...@us...> Index: NEWS =================================================================== RCS file: /cvsroot/rccparser/rccparser/NEWS,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** NEWS 10 Jan 2003 18:54:19 -0000 1.17 --- NEWS 19 Mar 2003 18:40:30 -0000 1.18 *************** *** 1,2 **** --- 1,16 ---- + [1.2.2] + * When a version 8 player audio message is received by a player + doBuildOppSide() and doBuildOurSide() are no longer called as they + are redundant. doBuildPlayerAudio( int time, double dir, const + std::string& msg ) or doBuildPlayerAudio( int time ) is called for + opponent messages and doBuildPlayerAudio( int time, double dir, int + unum, const std::string& msg ) or doBuildPlayerAudio( int time, int + unum ) is called for team-mate's messages. + + * Support for the new catch fault, indirect free kick and penalty + playmodes has been added. + + * More documentation has been added. + [1.2.1] * The code now has doxygen compatible emmbedded documentation. From |
From: Tom H. <tom...@us...> - 2003-02-14 11:50:18
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv17106/src Modified Files: Makefile.am footer.html header.html rcclexer.lpp rccparse.ypp rccparser.h Log Message: 2003-02-14 Tom Howard <tom...@us...> * ./src/rcclexer.lpp * ./src/rccparse.ypp * ./src/rccparser.h Added new penalty playmodes Index: Makefile.am =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/Makefile.am,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** Makefile.am 11 Feb 2003 09:26:49 -0000 1.34 --- Makefile.am 14 Feb 2003 11:50:10 -0000 1.35 *************** *** 5,19 **** *~ \ y.tab.h \ test_script_v7 \ test_script_v8 \ doxygen.conf \ ! $(HTMLFILES) \ ! doc/html/style.css \ ! doc/html/header.jpg \ ! doc/ps/@PACKAGE@-@VERSION@.ps \ ! doc/pdf/@PACKAGE@-@VERSION@.pdf \ ! doc/xml/@PACKAGE@-@VERSION@.xml \ ! doc/htmlgz/@PACKAGE@-@VERSION@.html.tar.gz ! BUILT_SOURCES = \ --- 5,20 ---- *~ \ y.tab.h \ + y.output \ test_script_v7 \ test_script_v8 \ doxygen.conf \ ! doc/html/* \ ! doc/htmlgz/* \ ! doc/xml/* \ ! doc/ps/* \ ! doc/pdf/* \ ! doc/latex/* \ ! doc/* \ ! doc BUILT_SOURCES = \ *************** *** 114,118 **** doc/html/classrcc_1_1Parser__coll__graph.gif \ doc/html/classrcc_1_1Parser__inherit__graph.gif \ - doc/html/doxygen.css \ doc/html/doxygen.gif \ doc/html/files.html \ --- 115,118 ---- *************** *** 135,142 **** - doxygen.conf: doxygen.conf.tmpl $(AWK) -v have_dot=@HAVE_DOT@ \ ! '/@DOT@/ { sub( /@DOT@/, have_dot ); } { print }' \ $(srcdir)/doxygen.conf.tmpl > doxygen.conf --- 135,141 ---- doxygen.conf: doxygen.conf.tmpl $(AWK) -v have_dot=@HAVE_DOT@ \ ! '/@DOT@/ { sub( /@DOT@/, have_dot ); } /@INPUT@/ { sub( /@INPUT@/, "$(srcdir)" ); } { print }' \ $(srcdir)/doxygen.conf.tmpl > doxygen.conf *************** *** 146,175 **** if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! ln -f style.css doc/html/style.css doc/html/header.jpg: header.jpg if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! ln -f header.jpg doc/html/header.jpg doc/html/getcomments.pl: getcomments.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! ln -f getcomments.pl doc/html/getcomments.pl doc/html/comment.pl: comment.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! ln -f comment.pl doc/html/comment.pl doc/html/addcomment.pl: addcomment.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! ln -f addcomment.pl doc/html/addcomment.pl if BUILD_DOC ! $(HTMLFILES): doxygen doc/html/header.jpg doc/html/style.css doc/html/comment.pl doc/html/getcomments.pl doc/html/addcomment.pl chmod +x $@ --- 145,174 ---- if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! cp -f $(srcdir)/style.css doc/html/style.css doc/html/header.jpg: header.jpg if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! cp -f $(srcdir)/header.jpg doc/html/header.jpg doc/html/getcomments.pl: getcomments.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! cp -f $(srcdir)/getcomments.pl doc/html/getcomments.pl doc/html/comment.pl: comment.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! cp -f $(srcdir)/comment.pl doc/html/comment.pl doc/html/addcomment.pl: addcomment.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! cp -f $(srcdir)/addcomment.pl doc/html/addcomment.pl if BUILD_DOC ! $(HTMLFILES): doxygen chmod +x $@ *************** *** 197,213 **** else ! $(HTMLFILES): doxygen doc/html/header.jpg doc/html/style.css doc/html/comment.pl doc/html/getcomments.pl doc/html/addcomment.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! list='$(HTMLFILES)'; \ ! for file in $$list; do \ ! if test -e "$(srcdir)/$$file" \ ! && ! test "$(srcdir)/$$file" -ef "$$file"; then \ ! cp -f "$(srcdir)/$$file" "$$file"; \ ! else \ ! touch "$$file"; \ ! fi \ done ! chmod +x doc/html/index.html --- 196,210 ---- else ! $(HTMLFILES): doxygen if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ! if test -e "$(srcdir)$@" \ ! && ! test "$(srcdir)$@" -ef "$@"; then \ ! cp -f "$(srcdir)$@" "$@"; \ ! else \ ! touch "$@"; \ ! fi \ done ! chmod +x "$@" *************** *** 216,223 **** if ! test -d doc/ps; then rm -f doc/ps; mkdir doc/ps; fi if test -e "$(srcdir)$@" \ ! && ! test "$(srcdir)/$@" -ef "$@"; then \ ! cp -f $(srcdir)/$@ $@; \ else \ ! touch $@; \ fi --- 213,220 ---- if ! test -d doc/ps; then rm -f doc/ps; mkdir doc/ps; fi if test -e "$(srcdir)$@" \ ! && ! test "$(srcdir)$@" -ef "$@"; then \ ! cp -f "$(srcdir)$@" "$@"; \ else \ ! touch "$@"; \ fi *************** *** 225,233 **** if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/pdf; then rm -f doc/pdf; mkdir doc/pdf; fi ! if test -e "$(srcdir)/$@" \ ! && ! test "$(srcdir)/$@" -ef "$@"; then \ ! cp -f $(srcdir)/$@ $@; \ else \ ! touch $@; \ fi --- 222,230 ---- if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/pdf; then rm -f doc/pdf; mkdir doc/pdf; fi ! if test -e "$(srcdir)$@" \ ! && ! test "$(srcdir)$@" -ef "$@"; then \ ! cp -f "$(srcdir)$@" "$@"; \ else \ ! touch "$@"; \ fi *************** *** 235,243 **** if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/xml; then rm -f doc/xml; mkdir doc/xml; fi ! if test -e "$(srcdir)/$@" \ ! && ! test "$(srcdir)/$@" -ef "$@"; then \ ! cp -f $(srcdir)/$@ $@; \ else \ ! touch $@; \ fi --- 232,240 ---- if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/xml; then rm -f doc/xml; mkdir doc/xml; fi ! if test -e "$(srcdir)$@" \ ! && ! test "$(srcdir)$@" -ef "$@"; then \ ! cp -f "$(srcdir)$@" "$@"; \ else \ ! touch "$@"; \ fi *************** *** 245,253 **** if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/htmlgz; then rm -f doc/htmlgz; mkdir doc/htmlgz; fi ! if test -e "$(srcdir)/$@" \ ! && ! test "$(srcdir)/$@" -ef "$@"; then \ ! cp -f $(srcdir)/$@ $@; \ else \ ! touch $@; \ fi --- 242,250 ---- if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/htmlgz; then rm -f doc/htmlgz; mkdir doc/htmlgz; fi ! if test -e "$(srcdir)$@" \ ! && ! test "$(srcdir)$@" -ef "$@"; then \ ! cp -f "$(srcdir)$@" "$@"; \ else \ ! touch "$@"; \ fi *************** *** 262,275 **** doc/xml/@PACKAGE@-@VERSION@.xml \ $(HTMLFILES) \ - doc/html/style.css \ - doc/html/header.jpg \ - doc/html/comment.pl \ - doc/html/getcomments.pl \ - doc/html/addcomment.pl \ doxygen.conf.tmpl \ header.jpg \ header.html \ footer.html \ ! style.css docdir = $(pkgdatadir)/doc --- 259,270 ---- doc/xml/@PACKAGE@-@VERSION@.xml \ $(HTMLFILES) \ doxygen.conf.tmpl \ header.jpg \ header.html \ footer.html \ ! style.css \ ! comment.pl \ ! getcomments.pl \ ! addcomment.pl docdir = $(pkgdatadir)/doc *************** *** 283,287 **** xmldir = $(docdir)/xml ! html_DATA = $(HTMLFILES) doc/html/style.css doc/html/header.jpg ps_DATA = doc/ps/@PACKAGE@-@VERSION@.ps pdf_DATA = doc/pdf/@PACKAGE@-@VERSION@.pdf --- 278,282 ---- xmldir = $(docdir)/xml ! html_DATA = $(HTMLFILES) doc/html/style.css doc/html/header.jpg doc/html/comment.pl doc/html/getcomments.pl doc/html/addcomment.pl ps_DATA = doc/ps/@PACKAGE@-@VERSION@.ps pdf_DATA = doc/pdf/@PACKAGE@-@VERSION@.pdf Index: footer.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/footer.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** footer.html 11 Feb 2003 09:26:49 -0000 1.4 --- footer.html 14 Feb 2003 11:50:10 -0000 1.5 *************** *** 8,19 **** alt="Make a PayPal donation - it's fast, easy and secure!"></a> <p>©2001-2003 ! Tom Howard ! . All Rights Reserved. </p> <p><a href="mailto:tom...@us...">Suggestions? Email the Webmaster!</a></p> <p> <a href="http://sourceforge.net"> <img src="http://sourceforge.net/sflogo.php?group_id=26880&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"> </a> </p> --- 8,35 ---- alt="Make a PayPal donation - it's fast, easy and secure!"></a> <p>©2001-2003 ! Tom Howard. All Rights Reserved. </p> <p><a href="mailto:tom...@us...">Suggestions? Email the Webmaster!</a></p> + <p>This document was created with<br> + <a href="http://www.doxygen.org"> + <img src="doxygen.gif" border="0" alt="Doxygen"> + </a> + </p> <p> <a href="http://sourceforge.net"> <img src="http://sourceforge.net/sflogo.php?group_id=26880&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"> + </a> + </p> + <p> + <a href="http://www.mysql.com"> + <img src="http://www.mysql.com/images/poweredbymysql-125.png" + border="0" alt="Powered by MySQL"> + </a> + </p> + <p> + <a href="http://www.perl.com"> + <img src="http://perl.oreilly.com/images/perl/rectangle_power_perl.gif" + border="0" alt="Powered by Perl"> </a> </p> Index: header.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/header.html,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** header.html 11 Feb 2003 09:26:49 -0000 1.4 --- header.html 14 Feb 2003 11:50:10 -0000 1.5 *************** *** 19,22 **** --- 19,23 ---- target="_blank">Library Repository</a></td> <td class="menu"><a href="http://www.robocup.org/" target="_blank">RoboCup</a></td> + <td class="menu"><a href="http://rccparser.sourceforge.net/admin/index.html" target="_self">Admin</a></td> </tr> </table> Index: rcclexer.lpp =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rcclexer.lpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** rcclexer.lpp 10 Jan 2003 17:35:57 -0000 1.5 --- rcclexer.lpp 14 Feb 2003 11:50:10 -0000 1.6 *************** *** 151,154 **** --- 151,171 ---- free_kick_fault_l { return FREE_KICK_FAULT_LEFT_KW; } free_kick_fault_r { return FREE_KICK_FAULT_RIGHT_KW; } + penalty_setup_l { return PENALTY_SETUP_LEFT_KW; } + penalty_setup_r { return PENALTY_SETUP_RIGHT_KW; } + penalty_ready_l { return PENALTY_READY_LEFT_KW; } + penalty_ready_r { return PENALTY_READY_RIGHT_KW; } + penalty_taken_l { return PENALTY_TAKEN_LEFT_KW; } + penalty_taken_r { return PENALTY_TAKEN_RIGHT_KW; } + penalty_miss_l { return PENALTY_MISS_LEFT_KW; } + penalty_miss_r { return PENALTY_MISS_RIGHT_KW; } + penalty_score_l { return PENALTY_SCORE_LEFT_KW; } + penalty_score_r { return PENALTY_SCORE_RIGHT_KW; } + penalty_onfield_l { return PENALTY_ONFIELD_LEFT_KW; } + penalty_onfield_r { return PENALTY_ONFIELD_RIGHT_KW; } + penalty_foul_l { return PENALTY_FOUL_LEFT_KW; } + penalty_foul_r { return PENALTY_FOUL_RIGHT_KW; } + penalty_winner_l { return PENALTY_WINNER_LEFT_KW; } + penalty_winner_r { return PENALTY_WINNER_RIGHT_KW; } + penalty_draw { return PENALTY_DRAW_KW; } goal_l_ { return L_KW; } Index: rccparse.ypp =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparse.ypp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** rccparse.ypp 11 Feb 2003 09:26:49 -0000 1.7 --- rccparse.ypp 14 Feb 2003 11:50:10 -0000 1.8 *************** *** 237,240 **** --- 237,258 ---- %token FREE_KICK_FAULT_LEFT_KW %token FREE_KICK_FAULT_RIGHT_KW + %token PENALTY_SETUP_LEFT_KW + %token PENALTY_SETUP_RIGHT_KW + %token PENALTY_READY_LEFT_KW + %token PENALTY_READY_RIGHT_KW + %token PENALTY_TAKEN_LEFT_KW + %token PENALTY_TAKEN_RIGHT_KW + %token PENALTY_MISS_LEFT_KW + %token PENALTY_MISS_RIGHT_KW + %token PENALTY_SCORE_LEFT_KW + %token PENALTY_SCORE_RIGHT_KW + %token PENALTY_ONFIELD_LEFT_KW + %token PENALTY_ONFIELD_RIGHT_KW + %token PENALTY_FOUL_LEFT_KW + %token PENALTY_FOUL_RIGHT_KW + %token PENALTY_WINNER_LEFT_KW + %token PENALTY_WINNER_RIGHT_KW + %token PENALTY_DRAW_KW + %token GOAL_KW *************** *** 415,418 **** --- 433,470 ---- | FREE_KICK_FAULT_RIGHT_KW { PARAM.buildFreeKickFaultRightPlayMode(); } + | PENALTY_SETUP_LEFT_KW + { PARAM.buildPenaltySetupLeftPlaymode(); } + | PENALTY_SETUP_RIGHT_KW + { PARAM.buildPenaltySetupRightPlaymode(); } + | PENALTY_READY_LEFT_KW + { PARAM.buildPenaltyReadyLeftPlaymode(); } + | PENALTY_READY_RIGHT_KW + { PARAM.buildPenaltyReadyRightPlaymode(); } + | PENALTY_TAKEN_LEFT_KW + { PARAM.buildPenaltyTakenLeftPlaymode(); } + | PENALTY_TAKEN_RIGHT_KW + { PARAM.buildPenaltyTakenRightPlaymode(); } + | PENALTY_MISS_LEFT_KW + { PARAM.buildPenaltyMissLeftPlaymode(); } + | PENALTY_MISS_RIGHT_KW + { PARAM.buildPenaltyMissRightPlaymode(); } + | PENALTY_SCORE_LEFT_KW + { PARAM.buildPenaltyScoreLeftPlaymode(); } + | PENALTY_SCORE_RIGHT_KW + { PARAM.buildPenaltyScoreRightPlaymode(); } + | PENALTY_ONFIELD_LEFT_KW + { PARAM.buildPenaltyOnFieldLeftPlaymode(); } + | PENALTY_ONFIELD_RIGHT_KW + { PARAM.buildPenaltyOnFieldRightPlaymode(); } + | PENALTY_FOUL_LEFT_KW + { PARAM.buildPenaltyFoulLeftPlaymode(); } + | PENALTY_FOUL_RIGHT_KW + { PARAM.buildPenaltyFoulRightPlaymode(); } + | PENALTY_WINNER_LEFT_KW + { PARAM.buildPenaltyWinnerLeftPlaymode(); } + | PENALTY_WINNER_RIGHT_KW + { PARAM.buildPenaltyWinnerRightPlaymode(); } + | PENALTY_DRAW_KW + { PARAM.buildPenaltyDrawPlaymode(); } ; Index: rccparser.h =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparser.h,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** rccparser.h 11 Feb 2003 09:26:49 -0000 1.26 --- rccparser.h 14 Feb 2003 11:50:10 -0000 1.27 *************** *** 550,553 **** --- 550,622 ---- void + buildPenaltySetupLeftPlaymode() + { M_parser.doBuildPenaltySetupLeftPlaymode(); } + + void + buildPenaltySetupRightPlaymode() + { M_parser.doBuildPenaltySetupRightPlaymode(); } + + void + buildPenaltyReadyLeftPlaymode() + { M_parser.doBuildPenaltyReadyLeftPlaymode(); } + + void + buildPenaltyReadyRightPlaymode() + { M_parser.doBuildPenaltyReadyRightPlaymode(); } + + void + buildPenaltyTakenLeftPlaymode() + { M_parser.doBuildPenaltyTakenLeftPlaymode(); } + + void + buildPenaltyTakenRightPlaymode() + { M_parser.doBuildPenaltyTakenRightPlaymode(); } + + void + buildPenaltyMissLeftPlaymode() + { M_parser.doBuildPenaltyMissLeftPlaymode(); } + + void + buildPenaltyMissRightPlaymode() + { M_parser.doBuildPenaltyMissRightPlaymode(); } + + void + buildPenaltyScoreLeftPlaymode() + { M_parser.doBuildPenaltyScoreLeftPlaymode(); } + + void + buildPenaltyScoreRightPlaymode() + { M_parser.doBuildPenaltyScoreRightPlaymode(); } + + void + buildPenaltyOnFieldLeftPlaymode() + { M_parser.doBuildPenaltyOnFieldLeftPlaymode(); } + + void + buildPenaltyOnFieldRightPlaymode() + { M_parser.doBuildPenaltyOnFieldRightPlaymode(); } + + void + buildPenaltyFoulLeftPlaymode() + { M_parser.doBuildPenaltyFoulLeftPlaymode(); } + + void + buildPenaltyFoulRightPlaymode() + { M_parser.doBuildPenaltyFoulRightPlaymode(); } + + void + buildPenaltyWinnerLeftPlaymode() + { M_parser.doBuildPenaltyWinnerLeftPlaymode(); } + + void + buildPenaltyWinnerRightPlaymode() + { M_parser.doBuildPenaltyWinnerRightPlaymode(); } + + void + buildPenaltyDrawPlaymode() + { M_parser.doBuildPenaltyDrawPlaymode(); } + + + void buildScore( int our, int opp ) { M_parser.doBuildScore( our, opp ); } *************** *** 2952,2955 **** --- 3021,3093 ---- void doBuildFreeKickFaultRightPlayMode() {} + + virtual + void + doBuildPenaltySetupLeftPlaymode() {} + + virtual + void + doBuildPenaltySetupRightPlaymode() {} + + virtual + void + doBuildPenaltyReadyLeftPlaymode() {} + + virtual + void + doBuildPenaltyReadyRightPlaymode() {} + + virtual + void + doBuildPenaltyTakenLeftPlaymode() {} + + virtual + void + doBuildPenaltyTakenRightPlaymode() {} + + virtual + void + doBuildPenaltyMissLeftPlaymode() {} + + virtual + void + doBuildPenaltyMissRightPlaymode() {} + + virtual + void + doBuildPenaltyScoreLeftPlaymode() {} + + virtual + void + doBuildPenaltyScoreRightPlaymode() {} + + virtual + void + doBuildPenaltyOnFieldLeftPlaymode() {} + + virtual + void + doBuildPenaltyOnFieldRightPlaymode() {} + + virtual + void + doBuildPenaltyFoulLeftPlaymode() {} + + virtual + void + doBuildPenaltyFoulRightPlaymode() {} + + virtual + void + doBuildPenaltyWinnerLeftPlaymode() {} + + virtual + void + doBuildPenaltyWinnerRightPlaymode() {} + + virtual + void + doBuildPenaltyDrawPlaymode() {} + //@} |
From: Tom H. <tom...@us...> - 2003-02-14 11:50:18
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv17106 Modified Files: ChangeLog Log Message: 2003-02-14 Tom Howard <tom...@us...> * ./src/rcclexer.lpp * ./src/rccparse.ypp * ./src/rccparser.h Added new penalty playmodes Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.57 retrieving revision 1.58 diff -C2 -d -r1.57 -r1.58 *** ChangeLog 11 Feb 2003 09:26:49 -0000 1.57 --- ChangeLog 14 Feb 2003 11:50:10 -0000 1.58 *************** *** 1,2 **** --- 1,23 ---- + 2003-02-14 Tom Howard <tom...@us...> + + * ./src/rcclexer.lpp + * ./src/rccparse.ypp + * ./src/rccparser.h + Added new penalty playmodes + + 2003-02-11 Tom Howard <tom...@us...> + + * ./src/footer.html + * ./src/header.html + Added admin links and perl/mysql logos + + 2003-02-11 Tom Howard <tom...@us...> + + * ./src/Makefile.am + Corrected problems with make distcheck + + * ./src/footer.html + Added doxygen acknowledgement + 2003-02-11 Tom Howard <tom...@us...> |
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv27457/src Modified Files: Makefile.am footer.html header.html rccparse.ypp rccparser.h Added Files: addcomment.pl comment.pl getcomments.pl Log Message: 2003-02-11 Tom Howard <tom...@us...> * ./src/Makefile.am * ./src/addcomment.pl * ./src/comment.pl * ./src/footer.html * ./src/getcomments.pl * ./src/header.html Added scripts for user comments on online docs. * ./src/rccparse.ypp Fine tuned grammer * ./src/rccparser.h Added more docs --- NEW FILE: addcomment.pl --- #!/usr/bin/perl use strict; use CGI; exec "../../admin/privaddcomment.pl"; my $cgi = new CGI(); print $cgi->header; print $cgi->start_html(-title=>'Adding Comment', -style=>{'src'=>'./style.css'}); print $cgi->p("Error adding comment: Could not connect to database"); print $cgi->end_html; --- NEW FILE: comment.pl --- #!/usr/bin/perl use strict; use CGI; my $cgi = new CGI(); print $cgi->header; my $page_id = $cgi->param('page'); my $idx = $cgi->param('idx'); print $cgi->start_html(-title=>'Add Comment', -style=>{'src'=>'./style.css'}); print $cgi->h1("Add Comment"); print $cgi->startform('POST', 'addcomment.pl'); print $cgi->hidden(-name=>'page', -value=>$page_id); print $cgi->hidden(-name=>'idx', -value=>$idx); print $cgi->textarea(-name=>'comment', -rows=>10, -style=>'width:100%;'); print $cgi->br(); print $cgi->br(); print $cgi->checkbox('pre', 0, 'ON', 'Preserve pre-formatted text' ); print $cgi->br(); print $cgi->br(); print $cgi->submit(-name=>'Submit'); print $cgi->endform(); print $cgi->end_html; --- NEW FILE: getcomments.pl --- #!/usr/bin/perl use strict; use CGI; exec "../../admin/privgetcomments.pl"; my $cgi = new CGI(); print $cgi->header; print $cgi->h1("User Comments"); print $cgi->p("Error getting comments: Could not connect to database"); Index: Makefile.am =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/Makefile.am,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** Makefile.am 6 Feb 2003 09:21:40 -0000 1.33 --- Makefile.am 11 Feb 2003 09:26:49 -0000 1.34 *************** *** 13,17 **** doc/ps/@PACKAGE@-@VERSION@.ps \ doc/pdf/@PACKAGE@-@VERSION@.pdf \ ! doc/xml/@PACKAGE@-@VERSION@.xml --- 13,18 ---- doc/ps/@PACKAGE@-@VERSION@.ps \ doc/pdf/@PACKAGE@-@VERSION@.pdf \ ! doc/xml/@PACKAGE@-@VERSION@.xml \ ! doc/htmlgz/@PACKAGE@-@VERSION@.html.tar.gz *************** *** 142,158 **** doxygen: doc/xml/@PACKAGE@-@VERSION@.xml ! doc/html/style.css: if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ln -f style.css doc/html/style.css ! doc/html/header.jpg: if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ln -f header.jpg doc/html/header.jpg if BUILD_DOC ! $(HTMLFILES): doxygen doc/html/header.jpg doc/html/style.css doc/ps/@PACKAGE@-@VERSION@.ps: doxygen --- 143,176 ---- doxygen: doc/xml/@PACKAGE@-@VERSION@.xml ! doc/html/style.css: style.css if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ln -f style.css doc/html/style.css ! doc/html/header.jpg: header.jpg if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ln -f header.jpg doc/html/header.jpg + doc/html/getcomments.pl: getcomments.pl + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi + ln -f getcomments.pl doc/html/getcomments.pl + + doc/html/comment.pl: comment.pl + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi + ln -f comment.pl doc/html/comment.pl + + doc/html/addcomment.pl: addcomment.pl + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi + ln -f addcomment.pl doc/html/addcomment.pl + + if BUILD_DOC ! $(HTMLFILES): doxygen doc/html/header.jpg doc/html/style.css doc/html/comment.pl doc/html/getcomments.pl doc/html/addcomment.pl ! chmod +x $@ doc/ps/@PACKAGE@-@VERSION@.ps: doxygen *************** *** 169,175 **** doxygen doxygen.conf mv doc/xml/doxygen.xml doc/xml/@PACKAGE@-@VERSION@.xml else ! $(HTMLFILES): doxygen if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi --- 187,201 ---- doxygen doxygen.conf mv doc/xml/doxygen.xml doc/xml/@PACKAGE@-@VERSION@.xml + + + doc/htmlgz/@PACKAGE@-@VERSION@.html.tar.gz: $(HTMLFILES) doc/html/style.css doc/html/comment.pl doc/html/getcomments.pl doc/html/addcomment.pl + if ! test -d doc/htmlgz; then rm -f doc/htmlgz; mkdir doc/htmlgz; fi + ln -s doc/html @PACKAGE@-@VERSION@.html + $(AMTAR) chof - "@PACKAGE@-@VERSION@.html" | GZIP=$(GZIP_ENV) gzip -c >"doc/htmlgz/@PACKAGE@-@VERSION@.html.tar.gz" + rm -rf @PACKAGE@-@VERSION@.html + else ! $(HTMLFILES): doxygen doc/html/header.jpg doc/html/style.css doc/html/comment.pl doc/html/getcomments.pl doc/html/addcomment.pl if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi *************** *** 183,188 **** fi \ done ! ln -f style.css doc/html/style.css ! ln -f header.jpg doc/html/header.jpg --- 209,213 ---- fi \ done ! chmod +x doc/html/index.html *************** *** 217,224 **** fi endif ! doc: $(HTMLFILES) doc/ps/@PACKAGE@-@VERSION@.ps doc/pdf/@PACKAGE@-@VERSION@.pdf doc/xml/@PACKAGE@-@VERSION@.xml EXTRA_DIST = clang.data out.data rcclexer.lpp ac_lib_rccparser.m4 \ --- 242,259 ---- fi + doc/htmlgz/@PACKAGE@-@VERSION@.html.tar.gz: $(HTMLFILES) doc/html/style.css doc/html/comment.pl doc/html/getcomments.pl doc/html/addcomment.pl + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/htmlgz; then rm -f doc/htmlgz; mkdir doc/htmlgz; fi + if test -e "$(srcdir)/$@" \ + && ! test "$(srcdir)/$@" -ef "$@"; then \ + cp -f $(srcdir)/$@ $@; \ + else \ + touch $@; \ + fi + endif ! doc: $(HTMLFILES) doc/ps/@PACKAGE@-@VERSION@.ps doc/pdf/@PACKAGE@-@VERSION@.pdf doc/xml/@PACKAGE@-@VERSION@.xml doc/htmlgz/@PACKAGE@-@VERSION@.html.tar.gz EXTRA_DIST = clang.data out.data rcclexer.lpp ac_lib_rccparser.m4 \ *************** *** 229,232 **** --- 264,270 ---- doc/html/style.css \ doc/html/header.jpg \ + doc/html/comment.pl \ + doc/html/getcomments.pl \ + doc/html/addcomment.pl \ doxygen.conf.tmpl \ header.jpg \ Index: footer.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/footer.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** footer.html 6 Feb 2003 09:21:40 -0000 1.3 --- footer.html 11 Feb 2003 09:26:49 -0000 1.4 *************** *** 1,2 **** --- 1,3 ---- + <!--#include file="getcomments.pl" --> </td></tr> </table> Index: header.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/header.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** header.html 6 Feb 2003 09:21:40 -0000 1.3 --- header.html 11 Feb 2003 09:26:49 -0000 1.4 *************** *** 14,17 **** --- 14,18 ---- <td class="menu"><a href="http://rccparser.sourceforge.net/index.html" target="_self">Home</a></td> <td class="menu"><a href="http://rccparser.sourceforge.net/doc.html" target="_self">Docs</a></td> + <td class="menu"><a href="http://rccparser.sourceforge.net/authors.html" target="_self">Authors</a></td> <td class="menu"><a href="http://medialab.di.unipi.it/Project/Robocup/pub/" target="_blank">Clients</a></td> <td class="menu"><a href="http://www.ida.liu.se/~frehe/RoboCup/Libs/" Index: rccparse.ypp =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparse.ypp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** rccparse.ypp 6 Feb 2003 09:21:40 -0000 1.6 --- rccparse.ypp 11 Feb 2003 09:26:49 -0000 1.7 *************** *** 1089,1098 **** getBool( $5 ) ); } ! | LP close_player_name REAL REAL tackle RP { PARAM.buildPlayer( true, getDouble( $3 ), getDouble( $4 ), ! getBool( $5 ) ); } | LP non_close_player_name REAL REAL REAL tackle RP --- 1089,1098 ---- getBool( $5 ) ); } ! | LP close_player_name REAL REAL RP { PARAM.buildPlayer( true, getDouble( $3 ), getDouble( $4 ), ! false ); } | LP non_close_player_name REAL REAL REAL tackle RP Index: rccparser.h =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparser.h,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** rccparser.h 6 Feb 2003 09:21:41 -0000 1.25 --- rccparser.h 11 Feb 2003 09:26:49 -0000 1.26 *************** *** 5832,5840 **** * * \pre Either an entire: ! - near, pointing or - version 7 player section of a player visual message has been parsed. * ! * \pre A version player visual message is being parsed. * * \sa --- 5832,5840 ---- * * \pre Either an entire: ! - near, non-pointing or - version 7 player section of a player visual message has been parsed. * ! * \pre A player visual message is being parsed. * * \sa *************** *** 6210,6213 **** --- 6210,6284 ---- + /** This function is called after parsing a player section of player visual message, + * when the client is in a high quality view mode, the player is far away and not pointing + * or the player is very far away and the client is using protocol 7, + * or the player is very close, but outside of the view cone. + * + * Override this function in your subclass to handle high quality + * far non-pointing or version 7, or very close player sections of player visual messages. + * + * \note This function is deprecates doBuildPlayer( bool close, double dist, double dir ). + * + * \param close false if the ball is in the client's view cone, true otherwise. + * \param dist The distance (in meters) from the client to the player. + * \param dir The angle from the client's center of view to the player. + * \param tackling true if the player is tackling and is in the clients view cone, false otherwise. + * + * \pre The client is a field player. + * + * \pre The client is in a high quality view mode. + * + * \pre An entire far non-pointing or version 7, or very close player section of a player visual message has been parsed. + * + * \pre A player visual message is being parsed. + * + * \sa + * - doBuildPlayer( bool close, double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg ) + * - doBuildPlayer( bool close, double dist, double dir ) + * - doBuildPlayer( bool close, double dir ) + * - doBuildVisual( int time ) + * + */ virtual void *************** *** 6219,6223 **** ! // kept for src compatibility virtual void --- 6290,6384 ---- ! /** This function is called after parsing a player section of player visual message, ! * when the client is in a high quality view mode, the player is not far away, is not ! * pointing or the client is using protcol version 7 and ! * doBuildPlayer( bool close, double dist, double dir, ! * double dist_chg, double dir_chg, ! * double orientation, double head_orientation, ! * bool tackling ), and ! * doBuildPlayer( double dist, double dir, ! * double dist_chg, double dir_chg, ! * double orientation, double head_orientation, ! * bool tackling ) have not ! * been overridden. ! * ! * Override this function in your subclass to handle version 8 or 9 high quality ! * near non-pointing or version 7 high quality near player sections of player visual messages. ! * ! * \warning This function is deprecated. Overide doBuildPlayer( double dist, double dir, ! * double dist_chg, double dir_chg, ! * double orientation, double head_orientation, ! * bool tackling ) instead. ! * ! * \param close false if the ball is in the client's view cone, true otherwise. Since ! * dist_chg, dir_chg, etc are only ever sent if the player is in the client's ! * view cone, \e close is always false, thus this parameter is redundant. ! * \param dist The distance (in meters) from the client to the player. ! * \param dir The angle from the client's center of view to the player. ! * \param dist_chg The distance change of the player relative to the client. ! * \param dir_chg The the direction change of the player relative to the client. ! * \param orientation The the direction of the player's body relative to the client. ! * \param head_orientation The the direction of the player's head relative to the client. ! * ! * \pre Either: ! * - The client is using protocol 8 or 9 and the player is not pointing, or ! * - The client is using protocol 7. ! * ! * \pre The client is a field player. ! * ! * \pre The client is in a high quality view mode. ! * ! * \pre Either an entire: ! - near, non-pointing or ! - version 7 ! player section of a player visual message has been parsed. ! * ! * \pre A player visual message is being parsed. ! * ! * \sa ! * - doBuildPlayer( bool close, double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, ! bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg ) ! * - doBuildPlayer( bool close, double dist, double dir ) ! * - doBuildPlayer( bool close, double dir ) ! * - doBuildVisual( int time ) ! * ! */ virtual void *************** *** 6228,6232 **** ! // kept for src compatibility virtual void --- 6389,6397 ---- ! /** This function never called. ! * ! * \warning This function is never called because the server never sends dist_chg and dir_chg ! * without body and head directions. ! */ virtual void *************** *** 6235,6243 **** double dist_chg, double dir_chg ) {} ! // kept for src compatibility virtual void doBuildPlayer( bool close, double dist, double dir ) {} virtual void --- 6400,6545 ---- double dist_chg, double dir_chg ) {} ! /** This function is called after parsing a player section of player visual message, ! * when the client is in a high quality view mode, the player is far away and not pointing ! * or the player is very far away and the client is using protocol 7, ! * or the player is very close, but outside of the view cone, ! * and doBuildPlayer( bool close, ! * double dist, double dir, bool tackling ) has not been overridden. ! * ! * Override this function in your subclass to handle high quality ! * far non-pointing or version 7, or very close player sections of player visual messages. ! * ! * \warning This function is deprecated. Override doBuildPlayer( bool close, ! * double dist, double dir, bool tackling ) instead. ! * ! * \param close false if the ball is in the client's view cone, true otherwise. ! * \param dist The distance (in meters) from the client to the player. ! * \param dir The angle from the client's center of view to the player. ! * ! * \pre The client is a field player. ! * ! * \pre The client is in a high quality view mode. ! * ! * \pre An entire far non-pointing or version 7, or very close player section of a player visual message has been parsed. ! * ! * \pre A player visual message is being parsed. ! * ! * \sa ! * - doBuildPlayer( bool close, double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg ) ! * - doBuildPlayer( bool close, double dir ) ! * - doBuildVisual( int time ) ! * ! */ virtual void doBuildPlayer( bool close, double dist, double dir ) {} + /** This function is called after parsing a player section of player visual message, + * when the client is in a low quality view mode. + * + * Override this function in your subclass to handle low quality + * player sections of player visual messages. + * + * \param close false if the ball is in the client's view cone, true otherwise. + * \param dir The angle from the client's center of view to the player. + * + * \pre The client is a field player. + * + * \pre The client is in a low quality view mode. + * + * \pre An entire player section of a player visual message has been parsed. + * + * \pre A player visual message is being parsed. + * + * \sa + * - doBuildPlayer( bool close, double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg ) + * - doBuildPlayer( bool close, double dist, double dir ) + * - doBuildVisual( int time ) + * + */ virtual void |
From: Tom H. <tom...@us...> - 2003-02-11 09:26:53
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv27457 Modified Files: ChangeLog Log Message: 2003-02-11 Tom Howard <tom...@us...> * ./src/Makefile.am * ./src/addcomment.pl * ./src/comment.pl * ./src/footer.html * ./src/getcomments.pl * ./src/header.html Added scripts for user comments on online docs. * ./src/rccparse.ypp Fine tuned grammer * ./src/rccparser.h Added more docs Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** ChangeLog 6 Feb 2003 09:21:40 -0000 1.56 --- ChangeLog 11 Feb 2003 09:26:49 -0000 1.57 *************** *** 1,2 **** --- 1,18 ---- + 2003-02-11 Tom Howard <tom...@us...> + + * ./src/Makefile.am + * ./src/addcomment.pl + * ./src/comment.pl + * ./src/footer.html + * ./src/getcomments.pl + * ./src/header.html + Added scripts for user comments on online docs. + + * ./src/rccparse.ypp + Fine tuned grammer + + * ./src/rccparser.h + Added more docs + 2003-02-06 Tom Howard <tom...@us...> |
From: Tom H. <tom...@us...> - 2003-02-06 09:21:44
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv21713/src Modified Files: Makefile.am footer.html header.html rccparse.ypp rccparser.h Log Message: 2003-02-06 Tom Howard <tom...@us...> * ./src/Makefile.am Split test script into two. * ./src/footer.html * ./src/header.html Updated links * ./src/rccparse.ypp * ./src/rccparser.h Updated docs and removed some parsing patterns that are never used, Index: Makefile.am =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/Makefile.am,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** Makefile.am 3 Feb 2003 14:14:23 -0000 1.32 --- Makefile.am 6 Feb 2003 09:21:40 -0000 1.33 *************** *** 5,9 **** *~ \ y.tab.h \ ! test_script \ doxygen.conf \ $(HTMLFILES) \ --- 5,10 ---- *~ \ y.tab.h \ ! test_script_v7 \ ! test_script_v8 \ doxygen.conf \ $(HTMLFILES) \ *************** *** 88,101 **** rm -f $@.tmp ! noinst_SCRIPTS = test_script ! test_script: rm -f $@ echo '#! /bin/sh' > $@ echo './rccptest < $(srcdir)/out.data' >> $@ echo './rccptest < $(srcdir)/v8-sensor_data.txt' >> $@ chmod +x $@ ! TESTS = test_script --- 89,107 ---- rm -f $@.tmp ! noinst_SCRIPTS = test_script_v7 test_script_v8 ! test_script_v7: rm -f $@ echo '#! /bin/sh' > $@ echo './rccptest < $(srcdir)/out.data' >> $@ + chmod +x $@ + + test_script_v8: + rm -f $@ + echo '#! /bin/sh' > $@ echo './rccptest < $(srcdir)/v8-sensor_data.txt' >> $@ chmod +x $@ ! TESTS = test_script_v7 test_script_v8 *************** *** 160,164 **** cp doc/latex/refman.pdf doc/pdf/@PACKAGE@-@VERSION@.pdf ! doc/xml/@PACKAGE@-@VERSION@.xml: $(pkginclude_HEADERS) $(librccparser_la_SOURCES) $(rccptest_SOURCES) doxygen.conf doxygen doxygen.conf mv doc/xml/doxygen.xml doc/xml/@PACKAGE@-@VERSION@.xml --- 166,170 ---- cp doc/latex/refman.pdf doc/pdf/@PACKAGE@-@VERSION@.pdf ! doc/xml/@PACKAGE@-@VERSION@.xml: $(pkginclude_HEADERS) $(librccparser_la_SOURCES) $(rccptest_SOURCES) doxygen.conf header.html footer.html doxygen doxygen.conf mv doc/xml/doxygen.xml doc/xml/@PACKAGE@-@VERSION@.xml *************** *** 201,205 **** fi ! doc/xml/@PACKAGE@-@VERSION@.xml: $(pkginclude_HEADERS) $(librccparser_la_SOURCES) $(rccptest_SOURCES) doxygen.conf if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/xml; then rm -f doc/xml; mkdir doc/xml; fi --- 207,211 ---- fi ! doc/xml/@PACKAGE@-@VERSION@.xml: $(pkginclude_HEADERS) $(librccparser_la_SOURCES) $(rccptest_SOURCES) doxygen.conf header.html footer.html if ! test -d doc; then rm -f doc; mkdir doc; fi if ! test -d doc/xml; then rm -f doc/xml; mkdir doc/xml; fi Index: footer.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/footer.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** footer.html 3 Feb 2003 14:14:23 -0000 1.2 --- footer.html 6 Feb 2003 09:21:40 -0000 1.3 *************** *** 17,29 **** </a> </p> - <p> - <a href="http://validator.w3.org/check/referer"><img border="0" - src="http://www.w3.org/Icons/valid-html401" - alt="Valid HTML 4.01!" height="31" width="88"></a> - <a href="http://jigsaw.w3.org/css-validator/"> - <img style="border:0;width:88px;height:31px" - src="http://jigsaw.w3.org/css-validator/images/vcss" - alt="Valid CSS!"></a> - </p> </div> </body> --- 17,20 ---- Index: header.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/header.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** header.html 3 Feb 2003 14:14:23 -0000 1.2 --- header.html 6 Feb 2003 09:21:40 -0000 1.3 *************** *** 16,20 **** <td class="menu"><a href="http://medialab.di.unipi.it/Project/Robocup/pub/" target="_blank">Clients</a></td> <td class="menu"><a href="http://www.ida.liu.se/~frehe/RoboCup/Libs/" ! target="_blank">Other Libraries</a></td> <td class="menu"><a href="http://www.robocup.org/" target="_blank">RoboCup</a></td> </tr> --- 16,20 ---- <td class="menu"><a href="http://medialab.di.unipi.it/Project/Robocup/pub/" target="_blank">Clients</a></td> <td class="menu"><a href="http://www.ida.liu.se/~frehe/RoboCup/Libs/" ! target="_blank">Library Repository</a></td> <td class="menu"><a href="http://www.robocup.org/" target="_blank">RoboCup</a></td> </tr> Index: rccparse.ypp =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparse.ypp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** rccparse.ypp 3 Feb 2003 13:47:43 -0000 1.5 --- rccparse.ypp 6 Feb 2003 09:21:40 -0000 1.6 *************** *** 1082,1102 **** getBool( $10 ) ); } - | LP non_close_player_name REAL REAL REAL REAL tackle RP - { - PARAM.buildPlayer( getDouble( $3 ), - getDouble( $4 ), - getDouble( $5 ), - getDouble( $6 ), - getBool( $7 ) ); - } - | LP non_close_player_name REAL REAL REAL REAL REAL tackle RP - { - PARAM.buildPlayer( getDouble( $3 ), - getDouble( $4 ), - getDouble( $5 ), - getDouble( $6 ), - getDouble( $7 ), - getBool( $8 ) ); - } | LP non_close_player_name REAL REAL tackle RP { --- 1082,1085 ---- Index: rccparser.h =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparser.h,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** rccparser.h 3 Feb 2003 13:47:43 -0000 1.24 --- rccparser.h 6 Feb 2003 09:21:41 -0000 1.25 *************** *** 27,31 **** /*! \mainpage RoboCup Client Parser (RCCParser) ! * * \section intro Introduction * --- 27,31 ---- /*! \mainpage RoboCup Client Parser (RCCParser) ! * * \section intro Introduction * *************** *** 5621,5629 **** * double orientation, double head_orientation, * double point_dir, bool tackling ) instead. - * \note This function deprecates doBuildPlayer( bool close, - * double dist, double dir, - * double dist_chg, double dir_chg, - * double orientation, double head_orientation ). - * * * \param close false if the ball is in the client's view cone, true otherwise. Since --- 5621,5624 ---- *************** *** 5707,5710 **** --- 5702,5781 ---- } + /** This function is called after parsing a version 8 or 9 player section of player visual message, + * when the client is in a high quality view mode, the player is not far away and is pointing. + * + * Override this function in your subclass to handle version 8 or 9 high quality + * near pointing player sections of player visual messages. + * + * \note This function is deprecates doBuildPlayer( bool close, double dist, double dir, + * double dist_chg, double dir_chg, + * double orientation, double head_orientation, + * double point_dir, bool tackling ). + * + * \param dist The distance (in meters) from the client to the player. + * \param dir The angle from the client's center of view to the player. + * \param dist_chg The distance change of the player relative to the client. + * \param dir_chg The the direction change of the player relative to the client. + * \param orientation The the direction of the player's body relative to the client. + * \param head_orientation The the direction of the player's head relative to the client. + * \param point_dir The the direction of the player is pointing relative to the client. + * \param tackling true if the player is tackling, false otherwise. + * + * \pre The client is using protocol 8 or 9. + * + * \pre The client is a field player. + * + * \pre The client is in a high quality view mode. + * + * \pre An entire near, pointing, player section of a player visual message has been parsed. + * + * \pre A version 8 or 9 player visual message is being parsed. + * + * \sa + * - doBuildPlayer( bool close, double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg ) + * - doBuildPlayer( bool close, double dist, double dir ) + * - doBuildPlayer( bool close, double dir ) + * - doBuildVisual( int time ) + * + */ virtual void *************** *** 5718,5722 **** } ! // kept for src compatibility virtual void --- 5789,5886 ---- } ! /** This function is called after parsing a player section of player visual message, ! * when the client is in a high quality view mode, the player is not far away, is not ! * pointing or the client is using protcol version 7 and ! * doBuildPlayer( double dist, double dir, ! * double dist_chg, double dir_chg, ! * double orientation, double head_orientation, ! * bool tackling ) has not ! * been overridden. ! * ! * Override this function in your subclass to handle version 8 or 9 high quality ! * near non-pointing or version 7 high quality near player sections of player visual messages. ! * ! * \warning This function is deprecated. Overide doBuildPlayer( double dist, double dir, ! * double dist_chg, double dir_chg, ! * double orientation, double head_orientation, ! * bool tackling ) instead. ! * \note This function deprecates doBuildPlayer( bool close, ! * double dist, double dir, ! * double dist_chg, double dir_chg, ! * double orientation, double head_orientation ). ! * ! * ! * \param close false if the ball is in the client's view cone, true otherwise. Since ! * dist_chg, dir_chg, etc are only ever sent if the player is in the client's ! * view cone, \e close is always false, thus this parameter is redundant. ! * \param dist The distance (in meters) from the client to the player. ! * \param dir The angle from the client's center of view to the player. ! * \param dist_chg The distance change of the player relative to the client. ! * \param dir_chg The the direction change of the player relative to the client. ! * \param orientation The the direction of the player's body relative to the client. ! * \param head_orientation The the direction of the player's head relative to the client. ! * \param tackling false if the player is not tackling or protocol 7 is being used, ! * true otherwise. ! * ! * \pre Either: ! * - The client is using protocol 8 or 9 and the player is not pointing, or ! * - The client is using protocol 7. ! * ! * \pre The client is a field player. ! * ! * \pre The client is in a high quality view mode. ! * ! * \pre Either an entire: ! - near, pointing or ! - version 7 ! player section of a player visual message has been parsed. ! * ! * \pre A version player visual message is being parsed. ! * ! * \sa ! * - doBuildPlayer( bool close, double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, ! bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg ) ! * - doBuildPlayer( bool close, double dist, double dir ) ! * - doBuildPlayer( bool close, double dir ) ! * - doBuildVisual( int time ) ! * ! */ virtual void *************** *** 5731,5734 **** --- 5895,5977 ---- } + /** This function is called after parsing a player section of player visual message, + * when the client is in a high quality view mode, the player is not far away and the + * player is not pointing or the client is using protocol 7. + * + * Override this function in your subclass to handle version 8 or 9 high quality + * near non-pointing or version 7 high quality near player sections of player visual messages. + * + * \note This function is deprecates doBuildPlayer( bool close, double dist, double dir, + * double dist_chg, double dir_chg, + * double orientation, double head_orientation, + * bool tackling ). + * + * \param dist The distance (in meters) from the client to the player. + * \param dir The angle from the client's center of view to the player. + * \param dist_chg The distance change of the player relative to the client. + * \param dir_chg The the direction change of the player relative to the client. + * \param orientation The the direction of the player's body relative to the client. + * \param head_orientation The the direction of the player's head relative to the client. + * \param tackling false if the player is not tackling or the client is using protocol 7, + * true otherwise. + * + * \pre Either: + * - The client is using protocol 8 or 9 and the player is not pointing, or + * - The client is using protocol 7. + * + * \pre The client is a field player. + * + * \pre The client is in a high quality view mode. + * + * \pre An entire near, non-pointing or version 7, player section of a player visual message has been parsed. + * + * \pre A player visual message is being parsed. + * + * \sa + * - doBuildPlayer( bool close, double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg ) + * - doBuildPlayer( bool close, double dist, double dir ) + * - doBuildPlayer( bool close, double dir ) + * - doBuildVisual( int time ) + * + */ virtual void *************** *** 5742,5746 **** } ! // kept for src compatibility virtual void --- 5985,5993 ---- } ! /** This function never called. ! * ! * \warning This function is never called because the server never sends dist_chg and dir_chg ! * without body and head directions. ! */ virtual void *************** *** 5751,5756 **** { doBuildPlayer( close, dist, dir, dist_chg, dir_chg ); ! } ! virtual void --- 5998,6008 ---- { doBuildPlayer( close, dist, dir, dist_chg, dir_chg ); ! } ! ! /** This function never called. ! * ! * \warning This function is never called because the server never sends dist_chg and dir_chg ! * without body and head directions. ! */ virtual void *************** *** 5762,5766 **** } ! // kept for src compatibility virtual void --- 6014,6022 ---- } ! /** This function never called. ! * ! * \warning This function is never called because the server never sends dist_chg and dir_chg ! * without body and head directions. ! */ virtual void *************** *** 5773,5776 **** --- 6029,6037 ---- } + /** This function never called. + * + * \warning This function is never called because the server never sends dist_chg and dir_chg + * without body and head directions. + */ virtual void *************** *** 5779,5786 **** bool tackling ) { ! doBuildPlayer( dist, dir, dist_chg, dir_chg, tackling ); } ! // kept for src compatibility virtual void --- 6040,6124 ---- bool tackling ) { ! doBuildPlayer( false, dist, dir, dist_chg, dir_chg, tackling ); } ! /** This function is called after parsing a version 8 or 9 player section of player visual message, ! * when the client is in a high quality view mode, the player is far away, is pointing and ! * doBuildPlayer( double dist, double dir, ! * double point_dir, bool tackling ) has not ! * been overridden. ! * ! * Override this function in your subclass to handle version 8 or 9 high quality ! * far pointing player sections of player visual messages. ! * ! * \warning This function is deprecated. Overide doBuildPlayer( double dist, double dir, ! * double point_dir, bool tackling ) instead. ! * ! * \param close false if the ball is in the client's view cone, true otherwise. Since ! * point_dir and tackling are only ever sent if the player is in the client's ! * view cone, \e close is always false, thus this parameter is redundant. ! * \param dist The distance (in meters) from the client to the player. ! * \param dir The angle from the client's center of view to the player. ! * \param point_dir The the direction of the player is pointing relative to the client. ! * \param tackling true if the player is tackling, false otherwise. ! * ! * \pre The client is using protocol 8 or 9. ! * ! * \pre The client is a field player. ! * ! * \pre The client is in a high quality view mode. ! * ! * \pre An entire far, pointing, player section of a player visual message has been parsed. ! * ! * \pre A version 8 or 9 player visual message is being parsed. ! * ! * \sa ! * - doBuildPlayer( bool close, double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation, ! bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double dist_chg, double dir_chg, ! bool tackling ) ! * - doBuildPlayer( double dist, double dir, ! double point_dir, bool tackling ) ! * - doBuildPlayer( bool close, double dist, double dir, ! bool tackling ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg, ! double orientation, double head_orientation ) ! * - doBuildPlayer( bool close, ! double dist, double dir, ! double dist_chg, double dir_chg ) ! * - doBuildPlayer( bool close, double dist, double dir ) ! * - doBuildPlayer( bool close, double dir ) ! * - doBuildVisual( int time ) ! * ! */ virtual void *************** *** 5791,5794 **** --- 6129,6204 ---- } + /** This function is called after parsing a version 8 or 9 player section of player visual message, + * when the client is in a high quality view mode, the player is far away and is pointing. + * + * Override this function in your subclass to handle version 8 or 9 high quality + * far pointing player sections of player visual messages. + * + * \note This function is deprecates doBuildPlayer( bool close, double dist, double dir, + * double point_dir, bool tackling ). + * + * \param dist The distance (in meters) from the client to the player. + * \param dir The angle from the client's center of view to the player. + * \param point_dir The the direction of the player is pointing relative to the client. + * \param tackling true if the player is tackling, false otherwise. + * + * \pre The client is using protocol 8 or 9. + * + * \pre The client is a field player. + * + * \pre The client is in a high quality view mode. + * + * \pre An entire far, pointing, player section of a player visual message has been parsed. + * + * \pre A version 8 or 9 player visual message is being parsed. + * + * \sa + * - doBuildPlayer( bool close, double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( double dist, double dir, + double dist_chg, double dir_chg, + bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + double point_dir, bool tackling ) + * - doBuildPlayer( bool close, double dist, double dir, + bool tackling ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg, + double orientation, double head_orientation ) + * - doBuildPlayer( bool close, + double dist, double dir, + double dist_chg, double dir_chg ) + * - doBuildPlayer( bool close, double dist, double dir ) + * - doBuildPlayer( bool close, double dir ) + * - doBuildVisual( int time ) + * + */ virtual void *************** *** 5798,5801 **** --- 6208,6212 ---- doBuildPlayer( false, dist, dir, tackling ); } + virtual |
From: Tom H. <tom...@us...> - 2003-02-06 09:21:43
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv21713 Modified Files: ChangeLog Log Message: 2003-02-06 Tom Howard <tom...@us...> * ./src/Makefile.am Split test script into two. * ./src/footer.html * ./src/header.html Updated links * ./src/rccparse.ypp * ./src/rccparser.h Updated docs and removed some parsing patterns that are never used, Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** ChangeLog 3 Feb 2003 14:14:23 -0000 1.55 --- ChangeLog 6 Feb 2003 09:21:40 -0000 1.56 *************** *** 1,8 **** ! 2003-02-03 Tom Howard <tom...@us...> * ./src/Makefile.am * ./src/footer.html * ./src/header.html ! Updated 2003-02-03 Tom Howard <tom...@us...> --- 1,14 ---- ! 2003-02-06 Tom Howard <tom...@us...> * ./src/Makefile.am + Split test script into two. + * ./src/footer.html * ./src/header.html ! Updated links ! ! * ./src/rccparse.ypp ! * ./src/rccparser.h ! Updated docs and removed some parsing patterns that are never used, 2003-02-03 Tom Howard <tom...@us...> |
From: Tom H. <tom...@us...> - 2003-02-03 14:14:27
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv20656/src Modified Files: Makefile.am footer.html header.html Log Message: 2003-02-03 Tom Howard <tom...@us...> * ./src/Makefile.am * ./src/footer.html * ./src/header.html Updated Index: Makefile.am =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/Makefile.am,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** Makefile.am 3 Feb 2003 13:47:43 -0000 1.31 --- Makefile.am 3 Feb 2003 14:14:23 -0000 1.32 *************** *** 8,11 **** --- 8,13 ---- doxygen.conf \ $(HTMLFILES) \ + doc/html/style.css \ + doc/html/header.jpg \ doc/ps/@PACKAGE@-@VERSION@.ps \ doc/pdf/@PACKAGE@-@VERSION@.pdf \ *************** *** 123,129 **** doc/html/rccparser_8h__dep__incl.gif \ doc/html/rccparser_8h__incl.gif \ ! doc/html/rccptest_8cpp-source.html \ ! doc/html/style.css \ ! doc/html/header.jpg --- 125,130 ---- doc/html/rccparser_8h__dep__incl.gif \ doc/html/rccparser_8h__incl.gif \ ! doc/html/rccptest_8cpp-source.html ! *************** *** 135,144 **** doxygen: doc/xml/@PACKAGE@-@VERSION@.xml ! if BUILD_DOC ! ! $(HTMLFILES): doxygen ln -f style.css doc/html/style.css ln -f header.jpg doc/html/header.jpg doc/ps/@PACKAGE@-@VERSION@.ps: doxygen cd doc/latex && $(MAKE) $(AM_MAKEFLAGS) ps --- 136,153 ---- doxygen: doc/xml/@PACKAGE@-@VERSION@.xml ! doc/html/style.css: ! if ! test -d doc; then rm -f doc; mkdir doc; fi ! if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ln -f style.css doc/html/style.css + + doc/html/header.jpg: + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi ln -f header.jpg doc/html/header.jpg + if BUILD_DOC + + $(HTMLFILES): doxygen doc/html/header.jpg doc/html/style.css + doc/ps/@PACKAGE@-@VERSION@.ps: doxygen cd doc/latex && $(MAKE) $(AM_MAKEFLAGS) ps *************** *** 212,215 **** --- 221,226 ---- doc/xml/@PACKAGE@-@VERSION@.xml \ $(HTMLFILES) \ + doc/html/style.css \ + doc/html/header.jpg \ doxygen.conf.tmpl \ header.jpg \ *************** *** 228,233 **** xmldir = $(docdir)/xml ! html_DATA = $(HTMLFILES) ! ps_DATA = doc/ps/@PACKAGE@-@VERSION@.ps pdf_DATA = doc/pdf/@PACKAGE@-@VERSION@.pdf xml_DATA = doc/xml/@PACKAGE@-@VERSION@.xml --- 239,244 ---- xmldir = $(docdir)/xml ! html_DATA = $(HTMLFILES) doc/html/style.css doc/html/header.jpg ! ps_DATA = doc/ps/@PACKAGE@-@VERSION@.ps pdf_DATA = doc/pdf/@PACKAGE@-@VERSION@.pdf xml_DATA = doc/xml/@PACKAGE@-@VERSION@.xml Index: footer.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/footer.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** footer.html 3 Feb 2003 13:47:43 -0000 1.1 --- footer.html 3 Feb 2003 14:14:23 -0000 1.2 *************** *** 3,7 **** <div align="center"> <br> ! <a href="http://rccparser.sf.net/donate.html"><img src="https://www.paypal.com/images/x-click-but04.gif" alt="Make a PayPal donation - it's fast, easy and secure!"></a> --- 3,7 ---- <div align="center"> <br> ! <a href="http://rccparser.sourceforge.net/donate.html"><img src="https://www.paypal.com/images/x-click-but04.gif" alt="Make a PayPal donation - it's fast, easy and secure!"></a> Index: header.html =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/header.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** header.html 3 Feb 2003 13:47:43 -0000 1.1 --- header.html 3 Feb 2003 14:14:23 -0000 1.2 *************** *** 12,17 **** <table class="menu"> <tr> ! <td class="menu"><a href="http://rccparser.sf.net/index.html" target="_self">Home</a></td> ! <td class="menu"><a href="http://rccparser.sf.net/doc.html" target="_self">Docs</a></td> <td class="menu"><a href="http://medialab.di.unipi.it/Project/Robocup/pub/" target="_blank">Clients</a></td> <td class="menu"><a href="http://www.ida.liu.se/~frehe/RoboCup/Libs/" --- 12,17 ---- <table class="menu"> <tr> ! <td class="menu"><a href="http://rccparser.sourceforge.net/index.html" target="_self">Home</a></td> ! <td class="menu"><a href="http://rccparser.sourceforge.net/doc.html" target="_self">Docs</a></td> <td class="menu"><a href="http://medialab.di.unipi.it/Project/Robocup/pub/" target="_blank">Clients</a></td> <td class="menu"><a href="http://www.ida.liu.se/~frehe/RoboCup/Libs/" |
From: Tom H. <tom...@us...> - 2003-02-03 14:14:27
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv20656 Modified Files: ChangeLog Log Message: 2003-02-03 Tom Howard <tom...@us...> * ./src/Makefile.am * ./src/footer.html * ./src/header.html Updated Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** ChangeLog 3 Feb 2003 13:47:42 -0000 1.54 --- ChangeLog 3 Feb 2003 14:14:23 -0000 1.55 *************** *** 1,4 **** --- 1,11 ---- 2003-02-03 Tom Howard <tom...@us...> + * ./src/Makefile.am + * ./src/footer.html + * ./src/header.html + Updated + + 2003-02-03 Tom Howard <tom...@us...> + * ./Makefile.am * ./configure.in |
From: Tom H. <tom...@us...> - 2003-02-03 13:47:47
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv8912/src Modified Files: Makefile.am rccparse.ypp rccparser.h Added Files: footer.html header.html header.jpg style.css Log Message: 2003-02-03 Tom Howard <tom...@us...> * ./Makefile.am * ./configure.in * ./src/Makefile.am * ./src/footer.html * ./src/header.html * ./src/header.jpg * ./src/rccparse.ypp * ./src/rccparser.h * ./src/style.css Updated docs and deprecated some functions --- NEW FILE: footer.html --- </td></tr> </table> <div align="center"> <br> <a href="http://rccparser.sf.net/donate.html"><img src="https://www.paypal.com/images/x-click-but04.gif" alt="Make a PayPal donation - it's fast, easy and secure!"></a> <p>©2001-2003 Tom Howard . All Rights Reserved. </p> <p><a href="mailto:tom...@us...">Suggestions? Email the Webmaster!</a></p> <p> <a href="http://sourceforge.net"> <img src="http://sourceforge.net/sflogo.php?group_id=26880&type=5" width="210" height="62" border="0" alt="SourceForge.net Logo"> </a> </p> <p> <a href="http://validator.w3.org/check/referer"><img border="0" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" height="31" width="88"></a> <a href="http://jigsaw.w3.org/css-validator/"> <img style="border:0;width:88px;height:31px" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a> </p> </div> </body> </html> --- NEW FILE: header.html --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"> <html> <head> <link type="text/css" rel="stylesheet" href="./style.css"> <title>The RoboCup Client Parser - $title</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <img class="header" src="./header.jpg" alt="The RoboCup Client Parser Logo" > <table class="menu"> <tr> <td class="menu"><a href="http://rccparser.sf.net/index.html" target="_self">Home</a></td> <td class="menu"><a href="http://rccparser.sf.net/doc.html" target="_self">Docs</a></td> <td class="menu"><a href="http://medialab.di.unipi.it/Project/Robocup/pub/" target="_blank">Clients</a></td> <td class="menu"><a href="http://www.ida.liu.se/~frehe/RoboCup/Libs/" target="_blank">Other Libraries</a></td> <td class="menu"><a href="http://www.robocup.org/" target="_blank">RoboCup</a></td> </tr> </table> <br> <table class="cont"> <tr><td> --- NEW FILE: header.jpg --- ÿØÿà ÿÄ "A9Qa·#3qrwx28RWXv¡²µ¶Ò$%46:BTV±¸ÁÑ×&(57CEGHÂábetyÓÕØðñÿÄ P1"% MI,â'Èâ?é }xʬJ~ò*²n Ä9 !<£ xm¹¿éywîb 8ß ó¾}ñÚi<ß?³:ÊÒºczNéV²%×Î1/àìñÌhÂ(^åYzêÑoÀ"GG)µªe¶Ù9"DvÊÐ' ÷ñámss¡hC¨V2%'$wçãsïôÞsv¾ô¿Æ]¶eF÷êòêê;øw´ÇPÞnXÙÑ4CtÒµ8(¨q®á%ºæ¡gtzôÈÆÿ <«Çw:xwÖk rÓrV´§# y+lg®ÞmW׿qrûo¸{þOÿ d(,B¬ÕÁSxÉÉbùÞ"²dÓ{¢_°KZÚiF*@éüwÅjø|î¹1¥ÁZ#dxúòGðÀÅHÿ P YI»Û¿wQÓ¸VE³ 3XÁ§!:{ äE8fàOvAúIÜSlÙ3JRH¢)N¡Aµ©÷ä(ò¢9]vúj¥QÚhs+ÊÏDøøúê1Éìåæ#ßFG¢©¼®«ÕôKVäMeSMÂxöøXª§¨ bÙËeJ ;û¶=ý )®^D£Ò®¸ôzzÏÔkn¦ÜÜÈÐ-13çnR¬þ5ø9È 8 ®E¨s&þ¶ÌÇÒE¸®u<é®õn Ós±lsTHy¿Ûäó½Ûºß?4Ȳ!)O*í\äÖÊñ3\ê÷)MÜn/O¢Lþ×Zåö·ÏÏ>ä%# JN2RUU?úº]R¿ªZ3þ/¼bÿ Ãv¯ÁuååkQÊÜQßÀ a9/çùKCIIQRØþ_ óÝUqÙ\Ûe´)EÕ%8 '©N6óû³æÜSë¶üEá^©ÓbÓ¾ï8µn»aòMÍõ}g>©#8¦møM*7PÄTì"åYE7"ÝþiD[mó|®¨d)yýÛýÝm§ÓbÓÌ}ïDó:pB?AÇ£Î*OñFÊ/TXv¢âÉ`±¥#. í3w pèö9TlÑä:G) åà1 B@d¨ Cw°ùrIOǧ£Ôu_ɯÎÛÿ 'ñî«uõPÅY²vë¹BÙê¤$_$'sÝ@â´ÉÁ;â><kcØfÎR)Òr É Yì«ÅROÕq(ê§îB©¦uª¢"i"DB Äÿ î#ÌF<<Þð qü÷åe¼29=;Tê_l8n×þ´ÖÍýY8QÊ.]Þ7ê9}[©ñ©fÃ+1Vf\éî3Ò¥\³Ñ.±£Þ6uæ*$X e@97qLßu´ì-½Éì±eC¸Ó±Ò;Û¸¾CÚºÙ'I>H#lg´~¥ÕjÒr´ýÛtò#Èq¢ 4ùë»gÛ<Å J¼FZ¡Atÿ DfÝeºKÎ4T»!U"âzvt´çæ£ç?v^Åãe²¯F£nzu×ay=E]¬4,lU|ýÂ,mNÞ(tÀLr6l²ÂØ}²EÑúV[õElË3ìErôôBiKRQ!KÀ@I>j4 uÅ«Yé«ÃOI Ú+ò_[ðYBòµ©(µÔ%$ùª u¤ýP¹?`Bñëú~cÜJü9Ô_µújÅ8½øÈÕ3úJ«ÜÁª7Ðöw9zbêNð2Ȳ»×pÖ8qÆ£+«õc([$AGR«do2ÒÓPÕê«ÇH¬WAâAÝ6 ãó{¥þ¾hØþ`ð:ݱôìÓE¤<¡EÀ¡öÇÈÆ:nÚZr-Oô¼¬Ón|~É%DHn5>µËµ£QéYnu%zÏ˲´(%ÖÝo£8¸ÙÀZ®ËöiÖfõfÜûKÉSyÎRóÛqµ:ÃÍ(áÖBm[8ì!éßÒÏesÕñríVµôJæúÞeÚ&A?>¹S: ö)Ho# ?MÎÐu$ )Ä"¶¯¾:½É=ãèß¾°ÝÃK¥ºJûóËNê ØòîGÖúC<C¶Ù^Ó¢*5c £ô¶%EûÖpáé¶lÊ%jë)IÝSGýjÙ¬ª¢g^G2¦¾Äû !ÄJjÁ5é8ûÜÆ Ùi 'Íí;¹»êà²Oe(V¸!"|U, ©l°Uæö©þpdOê]Ó7se¾sDìi´ nØa¬«(² ã«¶Hɹú4¬ý4¡â±²±K)"Ñ(Øe¨ñiNqNê'%¹c n-Õ]Y8äaô:ìe¬¨ Gô\¤ dĦñeõGQpíÓmññïï«Ñ+®b )II8*ÀQ Ö3dý"^#êí±5aøë»®KkÛªª¿f×AÙ]U§¤ ÎA ícº$\ìLò,®LeÌÅTN¨ üÃ#ÙWÌ·c·NÔR«$§® ý®ì1 mº5´ÍnÇ©Õc)ãÏÓPrËuÓ8*Ùãi¡!õ',·EÛuNa¶ÎsÜØ#¾m`lqÔy°sZ7ªtÅãI^'Xïqç ÎÍèêÜ·×óÌvéãPæx½@ñZ9:sµØ$ÑTEE%§Ç¦_bwæpñ/qì!Ûí÷¯YHlFÀã|uóV JG) äùC}½==ßÑcÐBÜ寨Ç^7úö5÷[NËÉí:ÖÐÐ:ÒvÛsÙs¬Z(ú´òNRvÄ¢2!îÅjdÚÖÍ]F\eÞ,SrÖ"nQáw&ð×9Ѷ[c*P9o·¨áÊZuX?1¿O=eÎ\=ä^µr£¼úú!ôNNË3²uÉÃX'Mu £$ÜÔ¦íQ*µn»·Ëv$UÉdT ë¦Ye¢± ÷cÏ*þ¼Úç[Ò×´oYó';w³ãUÙ¶:r¥eº;GN[¿-&t^[Y&åϦ¨x¤>Aàpíì>À`Ò[®»Gúe¤J¡'wÆ+H/:ùT ¦½qjIlNÛwí·£ÀW@ãG 7W'vM_K«È§%ñ$FQwMI(Ò :â)ýÿ ïÇѽ{ÿ Ç®¶ÇÔÆÒ±ål=[X÷(Jq×oããVâ1öÆÝ|}ε֥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)W¹» ®ê%ÐPª¤¡D@Ä9S IÂr9i½FycI Àm;8ÔÓlѹ«âDìR¿Èä û³)¬oñC,Îu-§)æ;mfq5þ¨Óqع¾¥<ç ¹¾¢Få·ú q¶ç{s7>û4|è⢪ ÀÒÌ[ ÛG#)§¯ªåÌ,ôìsï.rÖ:NÒáíÉ·eÜÑätÛÊËQùò_íyT¤G-[uÔ+%ã-èèË·DXÜ0Þ¼4ôëìqÙÌ)-N}2;rE-¸ ¥4óÍ«Pl×ÕZ®úqruqY¯§Çw2Ȱ+ÓYØàcɵ[JÕc«¾êûéVÛ94ÊçtÒe8cV×,ÖeJÑ·Ôéêå0ȳ©ÀnÝ?)T¯%òÁª^OÚd¸ìOkYª´¤FNºTv Nsü¥XmS~×&I@! MÄtù]²ðkäêTÌV°ªßèöõ»ò³Kßxñºìn{C-+Nêv¹§a¸ê¿d»¡: JF·~o±ÕÁÚò2HÉ>Wk8A«å_mÒ¬÷7üëBXSW3Ò`;ÌÚCùÎ9Ä%µº¿)hybµ ¬îÏ5ÔÝMha¼HTÕSÊæ~]±îvÐVêuØ.¶òü·¸àqfÞy¹½Ùq[ ÜßnÝ5õJÁÆ'ç!é,ìbþ¹)l HÂ`ì«¢y¾'0JÙ·Û&ÊQ)Kl+BDïËZ{öÖÞp«L¿«¸¦4ó)KmÖ9Z\B~Y%$r«%L0â@>IQD$_Τøã·¹Ó¯ùÊ{ÄU+^Â^§#^GTä.Îä6̪Ü(:dÊ¥=-0£ÕÀɦñRÅYdÔ.¼é ¾%ð\.y-!n,yy+ )Èé±#®àxâ¾Ç}ºWX_ø\'¡ÛH¸J &"ÒV£å ,HJ"Âz°rJÖ;xéêÏON1_nú¢ÆÎç±Ñ¡ÅÖ¬W&ögðiÁ1jÕâ§ÖVv´|½ÉìxNÁ$ì[&»§Ù¦z>¯= %Ls\HCJ_?O$ mÎvÆ"~دcξÞ8½¨_i¯`¸\uû0Ä`®e%õ¤)HZÁZ1ؤ! SW`äï= 74b+tÍ©ÔVç5¶nóü"Õ\gl{Ù4§[±rF»æñ¼%m+<FVß6âB ÍN*ncÒæYlQ-Ï( .nO*¢ <:gÛâ |çû uu<M¿ê;3A6ɲÜE%Ô°ßf¥òàAÁPÉR¤æ h=OôzRoª.à¼Bà ɾÉ×»3È=(ÖôÕz¾ó[@ÅPchå@nz²Ö¹:ó)0øG-¹hªoTÉzIG:òzc×éøöÔ0¢óò%±Ì<Êî9÷Õô úEܲÚÜ¿¨ð¨½-ãfÍÈÐunÜ«A×6-/lÅ@ìè[:¤\TUл'¦2Îb±ÀÚ>ªúÊVNüãhÒéBUàzõsÝãêô÷cÙL¥E=ØÏ³ãã5PK7w°Þ=c.Tª¼ä4&£Ô,Z´QFÒ(Kìiظä õ·ÙAôÓó4«5Úv9Ðï0IÆ7>üïôW¨Ø`ôßãÙê©9»iIßÖûz5{?øwÆ}9G®4Óúz÷ë×Íw¯ë±Ì£ØV¯ém71gQ[EÔfäeeaÝ˾YÝb±ÕÛv^áÇ£)ïïáôU9Dw¹²^ý³·Æû/zõN³ó Cí9Ó{n3<PâÎÅÝóÛ±´B%¬>¸xæ»[d",J[ë!¼lsF.í ¤E+K3úÕííã©¶9r«lÿ ¦ÊÃKAÈ>JO¿Ûì©Êî¯ÚÒÙÐVwZ×,xñÊNMîä¸M·N]ÒJka)ò{gOkÙâ,£VÝlbuY%ªùnÎ+÷3ÕÓÌ)n §íð_rK¡.-C>þo75k·éeºS£Gm·P$ñûóðj¡ºtöãâ¢ò_¨W2éíö®âü5: §e\Õ¸¦"e{!~hÜäV^¯LVÉ+.V$MbÂØ³i¼ãPÝ Þì¾NnÍ9Û9þØST_S§íOÏR i'g¯¨m¿Æ:\ý{;³Xâõ~½â×KJ6¥FjLtXD! Î Öíý#Û |¹²O.¯ÏKM´®ÍnÓnlxd}^8cO¯2n e¦Ù)àØîÛ§½9éð^׳©æåéÁ®2ôæªðµÍ×]ßù1½©V®¢¡ßËm+Z1us9wV;¹¥êeÙ0f³µ³YsmyS 0ìÇ3@õßãà §´ÉUÊÛù-·[J n2F}ú*ì:dµÚûÛ§Ç 7<.êí-qºr>ÛzºAÖãþ¥ÕòS2ô4K#ëÆ0öXRNÅS¥LÉt·D>:K% $ï7S¹øÍc·«D9·(1[åBQ cáñÒµ¤é¯Õ«ªPÞ³:§HÔ9=tãUóW;ä·¨jæðj¤LXv;ºH¾^yvP¡RñIÍiþ/M*±0ã%¦Òo¸ù©ôxyë-E¾ía 47ïóüf®ZtÏá³ï*Ç£ÿ ÉÆy°nSéKoô5Ï5¾`÷ÑäØQûr¸"bµ'W'øW2uSó!mN(©ö iÇsÕCBV¥ËPÙ ¨ÐÈ ÎäìvJ«í¿ØE¦Û¸q-ýG)ö§ârÝHm+vv@SkZIm+#@>Ù%#¬@ú8]78ë¾8º·&t^¶ÛÈì}½#^Á©ÆXÁÖ(°iµ=hw0MX¬R-½pÝѯ40¹*ð±è 3 û\©7(ÉwåK}§:Tb 0âIç8ä [$×§·Wö1Xàåôλp.RÕì7õEù^RLôצÙ}cæÏPx°éÀíôæ¬O#N3$¡a)W)IQÊFã¢óÖÊꩾ1ýθíÆ2f\¬mHaçÒ]iä0]JÏ:TrãaC$rçrNAú\|än½çµE§MÙøÕ½êZ®9Á'nTj^»¡]nÔPª¸ê£¢]´Ã1®ÝLDM5m±¡EC$ãvó{kâ¢Ò£¹+#Øp={U£Rþ?uÏ©Tzw|¤éjÕ²²:ñ®iyRWÊ'mouqk 3i6 Þ'M~ÑãûFúhFL8É=çãzã å%ÔRvZ\mBZeiù[[§^<ÔÙáQc òMÒQI*ÑV}ZßVyNÜ»¶7é·yôuñ¯ ¾GwãÏXÓ¡÷M déûÕB÷a~]³Ê.(ÉqËÔù¡,Dô¦Ç,Ê?̪S+Uâ9:*(ÒrHSÈ·'¬ûY#±©;~O~1°éÝó±ã]=ïc;FOv|ǡۿ§¨U<t¢å=o¥QZîÎåÆ¢Û kÊ×o4ØJë&Z«.ÖN3zåÎVªÑÁEÔp5dîZ4Wdà3v ¢.)yÊ]h£eã>`;³^2!_4áXϺ¬«WtúàÉqÓ\ã.÷yY«l ÝH úû9ý±²6LÄZõx`§P&n!«UxIø|¼Ó¥«6³©Ä1]Ð!´2 ²IÉéßÔ×-´Ôd+rT£ãÞ|ßUZ:"(Ï¡ôWMûnÙÖ¾ Ó\_´×ÖV¬GlE¨-µÒzVÜØëÇ£ ã\¤1Nì-Áz³M¢_ê»z²Ö5+äØqDP¡Ôoã×é÷+¦ÐÌÁr,0;ì{§9饽EoÝç¹)Â.ñaYµÜ¼ê¹2#IÙt;ÔG¬îôóXþ\kvÈB ÁÉB"a¬d³fQªª -Ú2|%Öpv>Ïîê¹Û¡Þ¡.,cº7ÁÈ#Ò3ðjÅ+dº'J]éQz§w(gö-Õ^ ©ÅYeõ=b){LÌËHèfËJDÜ.on¬¤2ÈB8X¥ôÚýÊ8z8saiàúc (a¹ê~æÜV WUh}HΣ «î¶/£@ QJ¥ Ö"Öfn%V«HÍ5iû©e¯j@ÉÆ3Ý×aã|®Ô;,úTOú'ïjz;nõçÕñNjÜ2àµÊÄ£ Íé){DÊVfí[Â,Ü&«°À²ì¡T8Ê(²Ãócéñ¯GNê¦íÝòÇlzBéO%d¸Ù³Ç¯ÖÚ(íêT´¶lJ··$AúÑ?thá¼ð²|³òhDtº«*|g¾¸RB¢öªð:Ãý$}MÎÞ!Ú¸{Ä ·5ÜNî¶Õ&wMËpIVO0æ§baj¤Òkôéë2JVÕêFjBU±Ë¬ChO&¤_KĽý;ê4DF+P$u$¯Ó×üdK~8Lt¸éÉÿ "n¶m´%'ªR ÉØ ·p@å¸5 IÁñ>ôtöz¢Oßc¾=þzÖó=f´vÛ^é.4Ô£®ÐÈ3·XipßXAÉH¤Ù)Yýj4&¦Çür`»w"ÕA±)¬¹î¿%<ª@9ÎÄïã±ßëÏ\æ©W&Lvj#þÖ?wÇ kkÈ©2Ó=j¦ñ§úÂÍ(õg¸Sôn¾ZðG æ[ÝÖ,´±ÔFE`õÙ@ ä0ÞCMäõëû³ÓÝæ®éeÇ9{gT|Fà÷í·ÇÕ8YÎý±¯y=U°Û¥ßTùºIJ¼tá®ÈfãRnh.áÁÅ7§v©ëOÓ)Sjx©4#rñfeðÚðP÷ÎðN:m ]{LÏ:ÐÊpw9ë¿gß[.ð¼$ù/^m¾µÎ¹Ý´íkBØënÒ×ëëA¯ÖÆÃ2Xm !ß¾íY-ïª<®Ó= W*ñίoßÀÞ°ñÙmolhòS±ôì©MJæ;6$u^Ðã 'TKðáµõ\ è£âr[D¢ ùp|ÄGØG¾d¶c?%DI/òHPÆÛätÇ^ó×>9 CajÜ r\dr«(ÂØ^g|VpªoîXk>/VôÒÑ:¾x@~ zÇwRhç±Ä?ªGºArÀäQ%r<À!Ü/®kp´òd¤0Gyðõÿ ºp6Ç Õ¹3µòhÑ«íÜì:à¨duϧÙüvZÛîÛòn¶ å-;ÁöçÃë1C¡ÿ ³\l7kWüzñÁïq >Åa|¶U¥1JbÅ?}3õ=iLÅr 3â¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)W²'û²ÿ ļECNIµi[ÕÊ:JÔÂß.RCÉmÆSJq¤[YA!.!XP×Çùh®~ÿ ÏìMÀ©U0 `sfË%·ãÊôõé½Oòìò²02¯Þ3ëéüjGðõ~_irßâ Ò¬ÖYø;¥ RQ¬ÕmúUÛØò£¦Ö:ø°fé+# Gn\E:XÞN0µ($wc¯Ç}Û¨8éÞ{ÁÏORùyÑíãê =ûüû·ºÚ»Â$xdtÜþúªÇ;K94ìG;ç|o=o]£¦âx§À@rbxÂÆß¿¦§Õ2§EÙ©NÕ<ü«RCÍ´Õ¬ß GËðp§(j{á_Ô[íK ÑÍ.Ùc$ê4Ȭt\$tw¡ßemPFrÈPãÊÃ:Óm´gT^A vi í³È!IJóݳòc \4þ¨öSN>åÂ3Ì>ËM²§V_l¨'²JIu+W3E$- P"½sjâ¿$QwV³uX¢ìh¸H»lÔ2Û>,±®VX-`/ĶhVQè¬íÒîÎtE1ñ ¢@ ;uðÿ E±xÄ)Ï¢4K§Ê$8RnÑdS 6·ÈµÙQ ¶µr©XÂAQ ýA¼ìU([]YãÊû±GÅTÚM¢ÁÒÔEr¤dVICÑMÑ:*ÌúâÞ5,(óW4t¬¼ë9Üa©¥c|:¢ `m÷pîÁ!Èwí_o9*%qRâyðÚÂÈÁäy(Q0A?J'¡¾Û1C¸t_&µýÿ yhW/0ÏÎòc¶{4ÌÖ·èVTº¥¥ä<ºÿ G7Kÿ ½ºC~ù¯;þoõM\´éÃV?<ÿ qºñÐàç>Ý{ü}5á&KÅdüÂ1×ù½ØôV22GváeTU21Ì"nýûæqî"=ÄCßÜDG¾:êOÓô5djAJRs×ãÑÝñêàÜP8wöþÞýÄÞÝ»÷ÏßÈ>ñìéTpA£»<ÕÝ W_1ãûü:T´éÙÂmÔßPVbåIG5¢&Gl][4XcjZú5û7¶«?þ¥JUTYÎSV¨«ÝjC-*Cªåi¤©Ej>bG^»Ý\É}¨¬U¶ØÉß8Î<}u°wXNKÖ.;Ç BxA¢ÙBÒëpÑ¢X¤1HÄ@r $;vrÎÞ*åÓ(áE8â¨Uâî¶âÓ.ó± Øü¬&JqSÝÓjlÙma<iJ+æX8R\lìZ/AÝõ÷;Ï&ÛèZöá1Õ\ËJhéëCª,9.s¸ ! åóg ;xZj£Óo!+°4|Ñf§zÚ%¼oÊÂ0Ѳ7 îRÞ²µv1Ò;h¬Ó&*ZJ!+q©e+ZJJÛaa|äx'uõõ´pÁ¢®÷RÉY-"\4³8È!.:Ìò´²Ò\äo³¾Ú_]ïáv¥løWõ¨î5òbôÖ=¼ÌÌÓ@Ó6Ëe:MGPOã¸$%..i8ç«ýÌz ¥ÙHGË'f¶ÃºÝ$ÆÑyYorã}þ%¶DË*ihQìm· -¬ ´e&>ÐVx»ÌÈw&Tüvôö¡ÒóÌÿ ½*;*é«X¾Z»¸ëȽK±âãÞ¯ârpÖÒm¦âK ÔÄvÈêú-·vÑDµxÕ³T)Ò÷îÇnvªû[#ĹÙïù¡Eز!8[çNp$v¬¹kSiΨ7þ×=´-M©èRíî%æ¹Ó %IZHRT¨Ý8t¦¼ä_6¸ÿ O<3X¯ìð/úÆÇg¹¶· Nór[mÕ²µ¡$<]l ó¶c¡5¸¦¶ß(lRò_GF>ViÛEN3ÔTë*fQ5wÌ[¨"uNDL¢¡Ìc@Laî#ìë´D#¸6çã g'-)É=H ¢ªÅ2:vAºI¿l»µÇI¢KîÐSYôõÑ»-â%ÍÖú# 9iµ%*Yz#ì$+`IQÁÂAÀ' åº k(!JìÒ9kG1ä.Ä-2Ò:Mxu 8§N<éíÓÈM§£´£dìÖòL+²Ñ°a/ÁÖi´d¥¦d"¢Ã³^VMi9¬Á»CLDTlöëÞ{V»KK~lÔ¸ÒCk´m/ºãm´64\YZÒT`ç¡ì6ÅöæÍÆËnºÂ#¶ëlv!KÁÇ^q¦ÊaN¸\q(åFùاÕSVnµ8ï¦7[c&uwt%2Rm¦!Z´ü"FE5Nøµ°«¬ØÅ]ªLÑY\^A¹ÚçÙí·49NZc4â\i)m·;`ÒÐT $K2#ª²zN_ÄÛeÞÍs°Z/-»mÒVHm!.%æR{å¥!IL ¢eY8ÁÎ5Ó"ÃÉN·äïK-¦"t-CcP¯Z£½ÓfÞÚ>8 ÜÈÅ^ëQÓ´¦ÙX[µVR^J&y±}X9¹ [´Kר¾hIÖÖíQæD:®O¢ëoJ;%-¹L:d4èu.¸¶Ý´ë£Z8tþ ÔiÔ|5¹Z²D¸B *®ò[½ÚÛo±SMóoKaàòJK¸ÓÉÝeIQwvE«`õ<äSQZåÍ/^Òâ̩ʿZ¢×$TeC{¦Y;¼õ÷M'6÷ÀÅn"$KÖ÷<²¦áÑ#7%ÊÊP;¹Þq×âãªÆØãUÂTî#_!¦êYòÔ(î wvºü õË/O*FÚúëBõ/Ú<*i§*y§\µ{nq/«ZÚ25uò×f¥·&ÇXvþ½,ÚÖÅiqOÜ¡,ÙȨ©Tµµ>§Z·;M:âmѯMªÜ¤ªBä!)ìTe'åÌ)L¸+SkPq*ÉÌÅÎ\´{΢ÓP´«J¹M©Ûj¤¡ ùWe":é -M-Iu*ÉÎvëà ÚÖ·.¸Fà_M|Üó¯*bÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ+Í?Ù û²ÿ Ås¦×$²ã6ßr{´Ó@~áîV[Õ2 l ñ¸\cSG[ÖiÛªøÜ.«äCRõãüîmf®Óye l³ÏôíÂèPb»J ÚÅJ±¨Þ©wiW/5Uì%»41.ñíüH´;oCÍG¿Ú_uV×V¢pã<@R» )m9RRVÛ²è J\iÉrýׯ֤HSXä¾»LÔR )\©A R¾K1-£+BJ}¨ï¤!ÖÔ3\änhûûS\u¤ÛG«²n¼ìR£]2ÄÎêÖW·F 'JRµ/(Á@\y¦¡I¯W{ÞÅ%QnÖù0JAu³Ø»ËÕQä'ðqAñÈ5ª÷Ý5}ÓR×ùkny(Jlüü:,¤sFÙ#ºâþVA妬utOw&¯QúßCë+vÍ·?pͱ¬D9zÒ®²r¶ip!b*ð(¨".ç¬/cb¦Erñ"Â+Uç{V¨R'HYHäaµ)- süÛ óyHm ¥UÞË`¼ê)ÛìéWKRDf´´®PäqÙFdó<úÛi ì]:ÿ #|üÏ{¾7dö}hj Ùu*»¼ î=1E*Ç`«© .sÛ!juÚåÂ}E.ë>}ÀCïO"[C_!RÐÚ¤8âØS¹ÂHAY_ó«*få|»ðCUN½\îwBuU²<Y9Ò§:3öµn6Òå:êÒÐ[Àá ¸Wüä«_§/â¼ëoûßqô·2Ù£¿¸ù¦ýráVø¸ãæWõÛrú0°y)®:´ÆG6UäL~A°bÑ ºxî Ûv {U×P&@÷1Ì ½wJR7*R! H»ðvßÅÛI[pîø!#*RÖÂÒÞT¢ [°î\5ç$£r rH9pÙHu¼Å¢¹·¦Ä4@Ò÷Ëf'6£°ã¥ØÅM¨§ór ¢A9¬gLÛܨ¤\ À¸&Û£5%Ò${)~)¸@á©m)Iç=¢yyR¤©IR ÍZ_IH<ÝÓ¼ï'8Ǫ#á:sò6EÕ¿Ij1¢XÖx»Ê3f5¹I¿¯åAxI4FMH±nArþ°X¿ %IÙ õ¶ÖOÝM¶Åg·Y³@¸Li¸£D©,EyÔ8¶#¶ÓjòÐ ²T2 Þ´Øãú0¬|àÚü¸Û¶mïYð«rïJõßl)+² ¬zêYRQû·õó(F× 4N='MÁ¡â+®¸Ùû¢{SϽI6T-5rº2ô-nMièq+Z̤´%-m´@R¥°Pu*ÀÏÝ\esÔRå\fÛ´ ÞôÃò¥:·¸3"HåÅ©|ëC)ã2l-¶ÓÈZIAý ?ñ«ÏoþëÎRz/Ü-ÿ ¦ÝTyX g.¤Ü¤Õv[ siN!DÛY#äªv I£XË×b[L[S4v¡íªkª}[.qVÙ)pµpÄÔC|6@|º#½¥¹Iýis²L=úU@zÉpyrÏwãEHt³tà|Ñ 9_ÂRÔÄ}ó°i.ö(É}l<êËÖï*Õu.ÕWäIbfrÆ'ä II2c¨0yW*ЯB¤¨ðA«¶øª´2*À#¡Ël'W¡hRVÞßSΣz\¸×¤øg´ª¦ï×ôª[è¦ó6XµDæÙÛ âaWH¶U6iw)¤Ò7|P]"Úõ-³MéuÆbç,e}ªK2àpKéÀë !#@2+-Õ¨Vn!KÓÖ}%£W5æ8kûJeeáìò$¥%ä¼ê@åP oaþ5.in._4ŵØÈmÆ9H^vög÷ß*ÿ ±? ÍppîC¹:â¹».FÐî²!\qhýù.v¼çé¨ß{nº¢ìÉ(Cݶàn¬}&¯&;éò& ^¯¨-IPÄSÈþ Ç")C{l#ÞçÄ©Ñß[O)Îu3¾wëþ*#¨în+¹Å¶d-Òê$¸½ÿ ÓH`¤Ù¼©UÂ(H(ì£*%àiaÆÈå çØIóÔ® ÇwiR ±ãÎ6÷úk¶ôµÚö<ç ÌÝåöÕÇzUå"15x¹rÝdíÂUãZÊðÎ$uËXO± \¼P±ÍÕrd7WÏÔÉuv× §'Éßl»øcÕãp´Q°Ï~s×®ã¦sW±¢¸V¾çÖÎçÏ·Aº×TéIÃñ® ME³d·C&~õ¡®èÖvÓjiÆÛ¬·T¶ùB¥Èë.-y;á8 f25 ï:aÍç¬v6aÆPãëq"RSC¥×w*uÇ2£Íò¥)¤hýqÒ»Añó\s¯rÏfNV¹¬ ®3òÉÓ 5VCVÍY§"®"¬öwhÈ}hÝá&Íþ©T1épt%ªÑ¨,ÌßæºÆ¢nRpFíc¾ëeFO¨/´J¶¢³[¸kc±j}Oqz>«fÜħÞÑEµé6¨ü¥¸©*í½P7'ûwLÞV µ5_ /ûKbÒR×Òõ»jãÒ4Û AXv .ªbVÊ¢äë7Q²ªQvÓ4V zdøyw&EÜfJcûT8H 4I) !G^NO8lýÂçl¾Î»9>`»bbò»d:T- JHQ))$c¾£5ß] ÷ôÓÝ©ùMwã¼mÓwÚÑHúåί]tìæUXê$THÆ!-1c3SDZ;nÀ1id¥x{vqsm÷ÙVt<K«PÌ*Ü¢0YiÖÛ¢qî]ÂTã4W ï¯9q¶jI¶ä)N®ÜQ\hêYÏ$@²ÃÍ2:Üyò¡Io\qÝ*¸/¯ö5=ÒÕa[Ú®ÖÞ67PÒÌe`&+̳;¨Ø8ÈzÚ3²®à¢FñÃwR®Y®ZKCc·É÷Ûvb}Ñå6¹+C8ÊFÓm²\SMcEN)dæ²í?wá¦rÓv¹_7ØïF¹Þd)%0ëBJmÚÜ[-%¢9¥:§Ty«q¯@ô âõökbUy}µ¬SÚÃhê·ó©QͼVפLQ¥¤èËcGÔÂí$Ê*£æV[F±Ëvc{Ëvø¼¡¹ñ]âÇ#)<í¡Ò¤dÌAUOX¸e¦¦»pª®r~Ûr¶)·Ä0·sì7\ImvÛt%<Às «îñÒÓ§Îï äÞºåFÐØ6¤¢¥bÌ4µÂ¹vªÆ dÿ ÀÍáAVÎ!eÈ»¨;HDFÎÙ8UÜ<ÒPåÝûåªÍ¢EÔ³ä>Ø]¾à\mä+tÊT3óTʯ1>j±iþ#A«îr¥4kºY}Jw(PPü¡D(x»ÖSéßÑÙ´µÞó»AÕ:Ã06±ª¤¾Y£YX ÖÜ;6êCÂ\´`Yµ&RIÙ$+£øtdHV¡¨Î¶àÁqêoreòÉ<í¤´ß{ProAp¡/H½Ur\I :ÏÉCÖóe qÉü$ÇR¤´ÈæC}±x È."k~Ü0±n[-'{.ÜëuqïañÒq½:bhÄVö;úÃù)è±f¡¦)WhFEveØ ¸ 0&$»éèZM½rz5þls´L³:Äl6ÌÕ°µ¼ßfÒjÁ<¼ÙF ÊIÅ_´µ»ºBEÚL=Oq«½}äÉðÔ{ã8ãíF^A¢¤aJÊIÆ:o*=0zymVÜ¢Õ¢Ú&ñP«Û¢"ªvt©}øQês¬hh6/½fè¹2ü©J äîQ¦±ÆÑBzo°/¦ÊÄÛøÙ¯·iM{&¼¤+# ÆzíTntÍÙ©.W cJi¸²@ÒþRÊQ=(s) Êpq3±Ås7^àé£Õ´ñ¶ÿ ZÉàU×Ȯׯ8¢Z|*ËzßɸÄS`»+ZÛbS/¡Æä4ÚÜqmv/¥JåòÙÆÃ=$øiÞW~GÛ¹17Amf§ë÷qÕú5ÔüJ<qfVbZÂt ?F7ë¸Ø$y¦±¿ÅÝ= 4ìî¯2/nÄp="ËóxSEöÐ\qà °Õ¶Ô@K©Z9«m»Kp»JJjó3PKÔ/Aq2bA[lF§Ú!lªCm]q!Ä·Û6ÒÈ y·æBò¦þØ=/zµK7Ùvåkã¶ù ²ª°ÂÖÉ «µ лW&X¸eb=\¬ä½¯ØÇáâ\Î-Í}Þ^âmÆD=Õ¦û.?gÊûh*- L¸»2¢´)¹pÚ-¡´¦é}Ã(º Ö\« í¾LÑK\²l¬²ÝBÿ ìw/ð¯3Xn ÙËl%ÅuXm!![mO£þ+jv ¸EjÚµ;v£!Õc.p1ES>FÕÓ¦)LR¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1JbÅ)S¦)LR¥1Jg9¥1÷ÿ &rÍWQf/KËÓzÉVï"> osKº[÷;8m§]JHÝ]1ã¾{¾¦½-Æ9öæâU%´àüá×ÕæÏIh> |²Flz¥¦ÁÇ=,º5#°ò(W¼AÃGdg0¢q6óǹníf®ÚH[Ýìå¡+eNMp¸»§î,¥«P¢®R´Ýqú*o´ñ^Ã5("©Á+Û©ó÷ûk7=à[;øÈ-cÍþ=ßCF·¬ÅXÜÙé®Xõ Ñ,س¶G5 Ë®|TÊcDÊ:mÔ4ÃN6ÐHÙ)VÒ=~º¿¦ùhè-\unxìzg©?+ÚK~AæM}µÆV¿Ãí© A;y÷þ RÊÇÎ9Bm·S YYØ #÷Ð-c¢Ô= #÷׬Î9ýC,©þT8ÿ #¡#ÐHú+Ø«×Î*_È¢Ê?ÆäGª}$¤×%k;(:úMx$átÉH*jüeÎèHô>à)Iù¤A#è¯%]º\;,åu@>å9ÿ --- NEW FILE: style.css --- html { margin-left: 10%; margin-right: 10%; color: white; background: #006600; font-family: arial, helvetica, Verdana, sans-serif; } pre { font-family: monospace; color: white; background: #006600; } table.main { width: 100%; text-align: center; } table.menu { width: 100%; text-align: center; padding: 1px; color: white; background: #006600; border: solid; border-width: medium; } td.menu { width: 25%; text-align: center; padding: 0.25em; color: white; background: #009900; font-style: oblique; font-weight: bold; } img.header { width: 600px; } table.cont { width: 100%; text-align: left; color: white; padding: 1em; background: #006600; } a:link { color: aqua; background: transparent; } /* for unvisited links */ a:visited { color: yellow; background: transparent;} /* for visited links */ a:active { color: white; background: transparent; } /* when link is clicked */ a:hover { color: white; background: transparent;} /* when mouse is over link */ table.toolsandnews { padding: 1em; color: white; background: #006600; vertical-align: top; font-family: arial, helvetica, Verdana, sans-serif; } table.toolsandnewsinner { padding: 1em; border: solid; border-width: medium; width: 100%; color: white; background: #006600; vertical-align: top; font-family: arial, helvetica, Verdana, sans-serif; } h3.toolsandnews { padding: 0.5em; text-align: center; } table.logs { width: 100%; padding: 1px; border: solid; border-width: medium; color: white; background: #006600; font-family: arial, helvetica, Verdana, sans-serif; } iframe.logs { width: 100%; } td.logs { width: 100%; color: #006600; background: white; font-family: arial, helvetica, Verdana, sans-serif; } tr.logs { color: #006600; background: white; font-family: arial, helvetica, Verdana, sans-serif; } tr.top { padding: 0.5em; font-style: oblique; color: #006600; background: white; font-family: arial, helvetica, Verdana, sans-serif; } tr.odd { color: white; background: #009900; font-family: arial, helvetica, Verdana, sans-serif; } tr.even { color: white; background: #006600; font-family: arial, helvetica, Verdana, sans-serif; } tr.first { font-weight: bold; font-size: 140%; color: yellow; background: #009900; font-family: arial, helvetica, Verdana, sans-serif; } tr.second { font-weight: bold; font-size: 120%; color: silver; background: #008800; font-family: arial, helvetica, Verdana, sans-serif; } tr.third { font-weight: bold; font-size: 110%; color: #ce8518; background: #007700; } font.winner { font-weight: bold; } Index: Makefile.am =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/Makefile.am,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** Makefile.am 10 Jan 2003 17:35:55 -0000 1.30 --- Makefile.am 3 Feb 2003 13:47:43 -0000 1.31 *************** *** 3,9 **** CLEANFILES = \ *.tmp\ ! *~\ y.tab.h \ ! test_script BUILT_SOURCES = \ --- 3,15 ---- CLEANFILES = \ *.tmp\ ! *~ \ y.tab.h \ ! test_script \ ! doxygen.conf \ ! $(HTMLFILES) \ ! doc/ps/@PACKAGE@-@VERSION@.ps \ ! doc/pdf/@PACKAGE@-@VERSION@.pdf \ ! doc/xml/@PACKAGE@-@VERSION@.xml ! BUILT_SOURCES = \ *************** *** 15,19 **** rccparse.ypp ! librccparser_la_LDFLAGS = -version-info 2:0:2 # 1. Start with version information of `0:0:0' for each libtool library. # --- 21,25 ---- rccparse.ypp ! librccparser_la_LDFLAGS = -version-info 3:0:3 # 1. Start with version information of `0:0:0' for each libtool library. # *************** *** 45,53 **** pkgdata_DATA = clang.data out.data ac_lib_rccparser.m4 - EXTRA_DIST = clang.data out.data rcclexer.lpp ac_lib_rccparser.m4 AM_CXXFLAGS=-W ! AM_YFLAGS=-d .ypp.h: $*.ypp --- 51,58 ---- pkgdata_DATA = clang.data out.data ac_lib_rccparser.m4 AM_CXXFLAGS=-W ! AM_YFLAGS=-d -v .ypp.h: $*.ypp *************** *** 92,95 **** TESTS = test_script ! doc: doxygen.conf doxygen doxygen.conf --- 97,234 ---- TESTS = test_script ! ! ! HTMLFILES = doc/html/annotated.html \ ! doc/html/classes.html \ ! doc/html/classrcc_1_1Parser-members.html \ ! doc/html/classrcc_1_1Parser.html \ ! doc/html/classrcc_1_1Parser__coll__graph.gif \ ! doc/html/classrcc_1_1Parser__inherit__graph.gif \ ! doc/html/doxygen.css \ ! doc/html/doxygen.gif \ ! doc/html/files.html \ ! doc/html/functions.html \ ! doc/html/globals.html \ ! doc/html/graph_legend.dot \ ! doc/html/graph_legend.gif \ ! doc/html/graph_legend.html \ ! doc/html/hierarchy.html \ ! doc/html/index.html \ ! doc/html/inherit__graph__0.gif \ ! doc/html/inherits.html \ ! doc/html/namespacercc.html \ ! doc/html/namespaces.html \ ! doc/html/rccparser_8h-source.html \ ! doc/html/rccparser_8h.html \ ! doc/html/rccparser_8h__dep__incl.gif \ ! doc/html/rccparser_8h__incl.gif \ ! doc/html/rccptest_8cpp-source.html \ ! doc/html/style.css \ ! doc/html/header.jpg ! ! ! doxygen.conf: doxygen.conf.tmpl ! $(AWK) -v have_dot=@HAVE_DOT@ \ ! '/@DOT@/ { sub( /@DOT@/, have_dot ); } { print }' \ ! $(srcdir)/doxygen.conf.tmpl > doxygen.conf ! ! doxygen: doc/xml/@PACKAGE@-@VERSION@.xml ! ! if BUILD_DOC ! ! $(HTMLFILES): doxygen ! ln -f style.css doc/html/style.css ! ln -f header.jpg doc/html/header.jpg ! ! doc/ps/@PACKAGE@-@VERSION@.ps: doxygen ! cd doc/latex && $(MAKE) $(AM_MAKEFLAGS) ps ! if ! test -d doc/ps; then mkdir doc/ps; fi ! cp doc/latex/refman.ps doc/ps/@PACKAGE@-@VERSION@.ps ! ! doc/pdf/@PACKAGE@-@VERSION@.pdf: doxygen ! cd doc/latex && $(MAKE) $(AM_MAKEFLAGS) pdf ! if ! test -d doc/pdf; then mkdir doc/pdf; fi ! cp doc/latex/refman.pdf doc/pdf/@PACKAGE@-@VERSION@.pdf ! ! doc/xml/@PACKAGE@-@VERSION@.xml: $(pkginclude_HEADERS) $(librccparser_la_SOURCES) $(rccptest_SOURCES) doxygen.conf doxygen doxygen.conf + mv doc/xml/doxygen.xml doc/xml/@PACKAGE@-@VERSION@.xml + else + + $(HTMLFILES): doxygen + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/html; then rm -f doc/html; mkdir doc/html; fi + list='$(HTMLFILES)'; \ + for file in $$list; do \ + if test -e "$(srcdir)/$$file" \ + && ! test "$(srcdir)/$$file" -ef "$$file"; then \ + cp -f "$(srcdir)/$$file" "$$file"; \ + else \ + touch "$$file"; \ + fi \ + done + ln -f style.css doc/html/style.css + ln -f header.jpg doc/html/header.jpg + + + doc/ps/@PACKAGE@-@VERSION@.ps: doxygen + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/ps; then rm -f doc/ps; mkdir doc/ps; fi + if test -e "$(srcdir)$@" \ + && ! test "$(srcdir)/$@" -ef "$@"; then \ + cp -f $(srcdir)/$@ $@; \ + else \ + touch $@; \ + fi + + doc/pdf/@PACKAGE@-@VERSION@.pdf: doxygen + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/pdf; then rm -f doc/pdf; mkdir doc/pdf; fi + if test -e "$(srcdir)/$@" \ + && ! test "$(srcdir)/$@" -ef "$@"; then \ + cp -f $(srcdir)/$@ $@; \ + else \ + touch $@; \ + fi + + doc/xml/@PACKAGE@-@VERSION@.xml: $(pkginclude_HEADERS) $(librccparser_la_SOURCES) $(rccptest_SOURCES) doxygen.conf + if ! test -d doc; then rm -f doc; mkdir doc; fi + if ! test -d doc/xml; then rm -f doc/xml; mkdir doc/xml; fi + if test -e "$(srcdir)/$@" \ + && ! test "$(srcdir)/$@" -ef "$@"; then \ + cp -f $(srcdir)/$@ $@; \ + else \ + touch $@; \ + fi + + endif + + + doc: $(HTMLFILES) doc/ps/@PACKAGE@-@VERSION@.ps doc/pdf/@PACKAGE@-@VERSION@.pdf doc/xml/@PACKAGE@-@VERSION@.xml + + EXTRA_DIST = clang.data out.data rcclexer.lpp ac_lib_rccparser.m4 \ + doc/ps/@PACKAGE@-@VERSION@.ps \ + doc/pdf/@PACKAGE@-@VERSION@.pdf \ + doc/xml/@PACKAGE@-@VERSION@.xml \ + $(HTMLFILES) \ + doxygen.conf.tmpl \ + header.jpg \ + header.html \ + footer.html \ + style.css + + docdir = $(pkgdatadir)/doc + + htmldir = $(docdir)/html + + psdir = $(docdir)/ps + + pdfdir = $(docdir)/pdf + + xmldir = $(docdir)/xml + + html_DATA = $(HTMLFILES) + ps_DATA = doc/ps/@PACKAGE@-@VERSION@.ps + pdf_DATA = doc/pdf/@PACKAGE@-@VERSION@.pdf + xml_DATA = doc/xml/@PACKAGE@-@VERSION@.xml + Index: rccparse.ypp =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparse.ypp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** rccparse.ypp 10 Jan 2003 17:35:57 -0000 1.4 --- rccparse.ypp 3 Feb 2003 13:47:43 -0000 1.5 *************** *** 917,944 **** ; ! flag: LP flag_name REAL REAL REAL REAL RP { ! PARAM.buildFlag( getBool( $2 ), getDouble( $3 ), ! getDouble( $4 ), ! getDouble( $5 ), ! getDouble( $6 ) ); } ! | LP flag_name REAL REAL RP { ! PARAM.buildFlag( getBool( $2 ), getDouble( $3 ), getDouble( $4 ) ); } ! | LP flag_name REAL RP ! { PARAM.buildFlag( getBool( $2 ), getDouble( $3 ) ); ! } ; ! flag_name: LP F_KW flag_location RP { $$ = false; } ! | LP CLOSE_F_KW RP { $$ = true; } ; --- 917,954 ---- ; ! flag: LP non_close_flag_name REAL REAL REAL REAL RP { ! PARAM.buildFlag( getDouble( $3 ), ! getDouble( $4 ), ! getDouble( $5 ), ! getDouble( $6 ) ); ! } ! | LP non_close_flag_name REAL REAL RP ! { ! PARAM.buildFlag( false, getDouble( $3 ), ! getDouble( $4 ) ); } ! | LP close_flag_name REAL REAL RP { ! PARAM.buildFlag( true, getDouble( $3 ), getDouble( $4 ) ); } ! | LP non_close_flag_name REAL RP ! { PARAM.buildFlag( false, getDouble( $3 ) ); ! } ! | LP close_flag_name REAL RP ! { PARAM.buildFlag( true, ! getDouble( $3 ) ); ! } ; ! close_flag_name: LP CLOSE_F_KW RP {} ; + non_close_flag_name: LP F_KW flag_location RP {} + ; *************** *** 960,982 **** ; ! goal: LP goal_name REAL REAL REAL REAL RP { ! PARAM.buildGoal( getBool( $2 ), getDouble( $3 ), ! getDouble( $4 ), ! getDouble( $5 ), ! getDouble( $6 ) ); } ! | LP goal_name REAL REAL RP { ! PARAM.buildGoal( getBool( $2 ), getDouble( $3 ), getDouble( $4 ) ); } ! | LP goal_name REAL RP ! { PARAM.buildGoal( getBool( $2 ), getDouble( $3 ) ); }; ! glob_goal: LP goal_name REAL REAL RP { PARAM.buildGlobalGoal( getDouble( $3 ), --- 970,1000 ---- ; ! goal: LP non_close_goal_name REAL REAL REAL REAL RP { ! PARAM.buildGoal( getDouble( $3 ), ! getDouble( $4 ), ! getDouble( $5 ), ! getDouble( $6 ) ); ! } ! | LP non_close_goal_name REAL REAL RP ! { ! PARAM.buildGoal( false, getDouble( $3 ), ! getDouble( $4 ) ); } ! | LP close_goal_name REAL REAL RP { ! PARAM.buildGoal( true, getDouble( $3 ), getDouble( $4 ) ); } ! | LP non_close_goal_name REAL RP ! { PARAM.buildGoal( false, ! getDouble( $3 ) ); }; ! | LP close_goal_name REAL RP ! { PARAM.buildGoal( true, getDouble( $3 ) ); }; ! glob_goal: LP non_close_goal_name REAL REAL RP { PARAM.buildGlobalGoal( getDouble( $3 ), *************** *** 984,989 **** }; ! goal_name: LP G_KW goal_location RP { $$ = false; } ! | LP CLOSE_G_KW RP { $$ = true; } ; --- 1002,1009 ---- }; ! close_goal_name: LP CLOSE_G_KW RP {} ! ; ! ! non_close_goal_name: LP G_KW goal_location RP {} ; *************** *** 992,1017 **** ; ! ball: LP ball_name REAL REAL REAL REAL RP { ! PARAM.buildBall( getBool( $2 ), getDouble( $3 ), ! getDouble( $4 ), ! getDouble( $5 ), ! getDouble( $6 ) ); } ! | LP ball_name REAL REAL RP { ! PARAM.buildBall( getBool( $2 ), getDouble( $3 ), getDouble( $4 ) ); } ! | LP ball_name REAL RP { ! PARAM.buildBall( getBool( $2 ), getDouble( $3 ) ); } ; ! glob_ball: LP ball_name REAL REAL REAL REAL RP { PARAM.buildGlobalBall( getDouble( $3 ), --- 1012,1047 ---- ; ! ball: LP non_close_ball_name REAL REAL REAL REAL RP { ! PARAM.buildPlayerVisBall( getDouble( $3 ), ! getDouble( $4 ), ! getDouble( $5 ), ! getDouble( $6 ) ); ! } ! | LP non_close_ball_name REAL REAL RP ! { ! PARAM.buildBall( false, getDouble( $3 ), ! getDouble( $4 ) ); } ! | LP close_ball_name REAL REAL RP { ! PARAM.buildBall( true, getDouble( $3 ), getDouble( $4 ) ); } ! | LP non_close_ball_name REAL RP { ! PARAM.buildBall( false, ! getDouble( $3 ) ); ! } ! | LP close_ball_name REAL RP ! { ! PARAM.buildBall( true, getDouble( $3 ) ); } ; ! glob_ball: LP non_close_ball_name REAL REAL REAL REAL RP { PARAM.buildGlobalBall( getDouble( $3 ), *************** *** 1022,1034 **** ; ! ball_name: LP B_KW RP { $$ = false; } ! | LP CLOSE_B_KW RP { $$ = true; } ; ! player: LP player_name REAL REAL REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getBool( $2 ), ! getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), --- 1052,1067 ---- ; ! ! ! close_ball_name: LP CLOSE_B_KW RP {} ! ; ! ! non_close_ball_name: LP B_KW RP {} ; ! player: LP non_close_player_name REAL REAL REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), *************** *** 1038,1045 **** getBool( $9 ) ); } ! | LP player_name REAL REAL REAL REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getBool( $2 ), ! getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), --- 1071,1077 ---- getBool( $9 ) ); } ! | LP non_close_player_name REAL REAL REAL REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), *************** *** 1050,1057 **** getBool( $10 ) ); } ! | LP player_name REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getBool( $2 ), ! getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), --- 1082,1088 ---- getBool( $10 ) ); } ! | LP non_close_player_name REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), *************** *** 1059,1066 **** getBool( $7 ) ); } ! | LP player_name REAL REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getBool( $2 ), ! getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), --- 1090,1096 ---- getBool( $7 ) ); } ! | LP non_close_player_name REAL REAL REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), *************** *** 1069,1090 **** getBool( $8 ) ); } ! | LP player_name REAL REAL tackle RP { ! PARAM.buildPlayer( getBool( $2 ), getDouble( $3 ), getDouble( $4 ), getBool( $5 ) ); } ! | LP player_name REAL REAL REAL tackle RP { ! PARAM.buildPlayer( getBool( $2 ), getDouble( $3 ), getDouble( $4 ), getDouble( $5 ), getBool( $6 ) ); } ! | LP player_name REAL RP { ! PARAM.buildPlayer( getBool( $2 ), getDouble( $3 ) ); } --- 1099,1131 ---- getBool( $8 ) ); } ! | LP non_close_player_name REAL REAL tackle RP { ! PARAM.buildPlayer( false, getDouble( $3 ), getDouble( $4 ), getBool( $5 ) ); } ! | LP close_player_name REAL REAL tackle RP { ! PARAM.buildPlayer( true, getDouble( $3 ), getDouble( $4 ), + getBool( $5 ) ); + } + | LP non_close_player_name REAL REAL REAL tackle RP + { + PARAM.buildPlayer( getDouble( $3 ), + getDouble( $4 ), getDouble( $5 ), getBool( $6 ) ); } ! | LP non_close_player_name REAL RP { ! PARAM.buildPlayer( false, ! getDouble( $3 ) ); ! } ! | LP close_player_name REAL RP ! { ! PARAM.buildPlayer( true, getDouble( $3 ) ); } *************** *** 1097,1101 **** ; ! glob_player: LP player_name REAL REAL REAL REAL REAL REAL tackle RP { PARAM.buildGlobalPlayer( getDouble( $3 ), --- 1138,1142 ---- ; ! glob_player: LP near_player_name REAL REAL REAL REAL REAL REAL tackle RP { PARAM.buildGlobalPlayer( getDouble( $3 ), *************** *** 1107,1111 **** getBool( $9 ) ); } ! | LP player_name REAL REAL REAL REAL REAL REAL REAL tackle RP { PARAM.buildGlobalPlayer( getDouble( $3 ), --- 1148,1152 ---- getBool( $9 ) ); } ! | LP near_player_name REAL REAL REAL REAL REAL REAL REAL tackle RP { PARAM.buildGlobalPlayer( getDouble( $3 ), *************** *** 1119,1133 **** } ; ! ! player_name: LP CLOSE_P_KW RP { $$ = true; } ! | LP P_KW RP { $$ = false; } ! | LP P_KW QSTR RP { ! $$ = false; ! PARAM.buildTeamName( getString( $3 ) ); } ! | LP P_KW QSTR INT RP { - $$ = false; PARAM.buildTeamName( getString( $3 ) ); PARAM.buildUNum( getInt( $4 ) ); --- 1160,1176 ---- } ; ! ! ! close_player_name: LP CLOSE_P_KW RP {} ! ! too_far_player_name: LP P_KW RP {} ! ! far_player_name: LP P_KW QSTR RP { ! PARAM.buildTeamName( getString( $3 ) ); } ! ! near_player_name: LP P_KW QSTR INT RP { PARAM.buildTeamName( getString( $3 ) ); PARAM.buildUNum( getInt( $4 ) ); *************** *** 1135,1139 **** | LP P_KW QSTR INT GOALIE_KW RP { - $$ = false; PARAM.buildTeamName( getString( $3 ) ); PARAM.buildUNum( getInt( $4 ) ); --- 1178,1181 ---- *************** *** 1141,1144 **** --- 1183,1191 ---- }; + non_close_player_name: near_player_name {} + | far_player_name {} + | too_far_player_name {} + + score: LP SCORE_KW INT INT INT RP { *************** *** 1203,1207 **** getString( $5 ) ); } ! | LP HEAR_KW INT player_name QSTR RP { PARAM.buildPlayerAudio( getInt( $3 ), --- 1250,1254 ---- getString( $5 ) ); } ! | LP HEAR_KW INT near_player_name QSTR RP { PARAM.buildPlayerAudio( getInt( $3 ), Index: rccparser.h =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparser.h,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** rccparser.h 10 Jan 2003 17:37:44 -0000 1.23 --- rccparser.h 3 Feb 2003 13:47:43 -0000 1.24 *************** *** 33,37 **** * <a href="http://sserver.sf.net">RoboCup Soccer Simulator</a>. * It can be used for field players and coaches using protocol versions ! * 7 & 8. * * The parser is Flex and Bison based so it should be fast compared to a --- 33,37 ---- * <a href="http://sserver.sf.net">RoboCup Soccer Simulator</a>. * It can be used for field players and coaches using protocol versions ! * 7 to 9. * [...2132 lines suppressed...] + * \pre A flag offset of a flag section of a player visual message has been parsed. + * + * \pre A flag section of a player visual message is being parsed. + * + * \pre A a player visual message is being parsed. + * + * \sa + * - doBuildFlag( bool close, + * double dist, double dir, + * double dist_chg, double dir_chg ) + * - doBuildFlag( bool close, double dist, double dir ) + * - doBuildFlag( bool close, double dir ) {} + * + */ + virtual + void + doBuildFlagOffset( int offset ) {} + virtual void |
From: Tom H. <tom...@us...> - 2003-02-03 13:47:46
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv8912 Modified Files: ChangeLog Makefile.am configure.in Log Message: 2003-02-03 Tom Howard <tom...@us...> * ./Makefile.am * ./configure.in * ./src/Makefile.am * ./src/footer.html * ./src/header.html * ./src/header.jpg * ./src/rccparse.ypp * ./src/rccparser.h * ./src/style.css Updated docs and deprecated some functions Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** ChangeLog 10 Jan 2003 18:59:13 -0000 1.53 --- ChangeLog 3 Feb 2003 13:47:42 -0000 1.54 *************** *** 1,2 **** --- 1,15 ---- + 2003-02-03 Tom Howard <tom...@us...> + + * ./Makefile.am + * ./configure.in + * ./src/Makefile.am + * ./src/footer.html + * ./src/header.html + * ./src/header.jpg + * ./src/rccparse.ypp + * ./src/rccparser.h + * ./src/style.css + Updated docs and deprecated some functions + 2003-01-10 Tom Howard <tom...@us...> Index: Makefile.am =================================================================== RCS file: /cvsroot/rccparser/rccparser/Makefile.am,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** Makefile.am 10 Jan 2003 17:35:51 -0000 1.16 --- Makefile.am 3 Feb 2003 13:47:42 -0000 1.17 *************** *** 121,123 **** fi ! --- 121,124 ---- fi ! doc: ! cd @srcdir@/src && $(MAKE) $(AM_MAKEFLAGS) doc Index: configure.in =================================================================== RCS file: /cvsroot/rccparser/rccparser/configure.in,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** configure.in 10 Jan 2003 19:04:42 -0000 1.30 --- configure.in 3 Feb 2003 13:47:42 -0000 1.31 *************** *** 110,113 **** --- 110,118 ---- fi + AC_PATH_PROG(DOXYGEN, doxygen, found) + AM_CONDITIONAL(BUILD_DOC, [test "$DOXYGEN"] ) + + AC_ARG_VAR(HAVE_DOT, [If the program dot is available]) + AC_PATH_PROG(HAVE_DOT, dot, YES, NO) dnl test for debug mode |
From: Tom H. <tom...@us...> - 2003-01-10 19:04:47
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv6813 Modified Files: configure.in Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./configure.in Released rccparser-1.2.1 Index: configure.in =================================================================== RCS file: /cvsroot/rccparser/rccparser/configure.in,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** configure.in 6 Jan 2003 16:36:39 -0000 1.29 --- configure.in 10 Jan 2003 19:04:42 -0000 1.30 *************** *** 1,5 **** dnl Process this file with autoconf to produce a configure script. AC_INIT(src/rccparse.ypp) ! AM_INIT_AUTOMAKE(rccparser, 1.2.1) AM_CONFIG_HEADER(config.h) --- 1,5 ---- dnl Process this file with autoconf to produce a configure script. AC_INIT(src/rccparse.ypp) ! AM_INIT_AUTOMAKE(rccparser, 1.2.2) AM_CONFIG_HEADER(config.h) |
From: Tom H. <tom...@us...> - 2003-01-10 19:00:43
|
Update of /cvsroot/rccparser/rcclient In directory sc8-pr-cvs1:/tmp/cvs-serv5296 Modified Files: configure.ac Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./configure.ac Released rcclient-0.0.1 Index: configure.ac =================================================================== RCS file: /cvsroot/rccparser/rcclient/configure.ac,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** configure.ac 10 Jan 2003 18:56:47 -0000 1.3 --- configure.ac 10 Jan 2003 19:00:37 -0000 1.4 *************** *** 1,5 **** dnl Process this file with autoconf to produce a configure script. AC_INIT(src/rcclient.cpp) ! AM_INIT_AUTOMAKE(rcclient, 0.0.1) AM_CONFIG_HEADER(config.h) AC_PREREQ(2.53) --- 1,5 ---- dnl Process this file with autoconf to produce a configure script. AC_INIT(src/rcclient.cpp) ! AM_INIT_AUTOMAKE(rcclient, 0.0.2) AM_CONFIG_HEADER(config.h) AC_PREREQ(2.53) |
From: Tom H. <tom...@us...> - 2003-01-10 18:59:16
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv4586 Modified Files: ChangeLog Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./configure.in Released rccparser-1.2.1 Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rccparser/ChangeLog,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** ChangeLog 10 Jan 2003 17:35:50 -0000 1.52 --- ChangeLog 10 Jan 2003 18:59:13 -0000 1.53 *************** *** 1,4 **** --- 1,9 ---- 2003-01-10 Tom Howard <tom...@us...> + * ./configure.in + Released rccparser-1.2.1 + + 2003-01-10 Tom Howard <tom...@us...> + * ./Makefile.am * ./src/Makefile.am |
From: Tom H. <tom...@us...> - 2003-01-10 18:59:09
|
Update of /cvsroot/rccparser/rcclient In directory sc8-pr-cvs1:/tmp/cvs-serv4535 Modified Files: ChangeLog Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./configure.ac Released rcclient-0.0.1 Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rcclient/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ChangeLog 10 Jan 2003 18:56:46 -0000 1.4 --- ChangeLog 10 Jan 2003 18:59:06 -0000 1.5 *************** *** 1,4 **** --- 1,9 ---- 2003-01-10 Tom Howard <tom...@us...> + * ./configure.ac + Released rcclient-0.0.1 + + 2003-01-10 Tom Howard <tom...@us...> + * ./README Updated readme |
From: Tom H. <tom...@us...> - 2003-01-10 18:56:52
|
Update of /cvsroot/rccparser/rcclient In directory sc8-pr-cvs1:/tmp/cvs-serv3353 Modified Files: ChangeLog NEWS README acinclude.m4 configure.ac Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./README Updated readme * ./acinclude.m4 * ./configure.ac Added macro from rcssnet detection * ./src/rcclient.cpp * ./src/rcclient.h * ./src/rcctest.cpp Integrated with rcssnet and added compression support Index: ChangeLog =================================================================== RCS file: /cvsroot/rccparser/rcclient/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChangeLog 6 Jan 2003 17:22:43 -0000 1.3 --- ChangeLog 10 Jan 2003 18:56:46 -0000 1.4 *************** *** 1,2 **** --- 1,16 ---- + 2003-01-10 Tom Howard <tom...@us...> + + * ./README + Updated readme + + * ./acinclude.m4 + * ./configure.ac + Added macro from rcssnet detection + + * ./src/rcclient.cpp + * ./src/rcclient.h + * ./src/rcctest.cpp + Integrated with rcssnet and added compression support + 2003-01-06 Tom Howard <tom...@us...> Index: NEWS =================================================================== RCS file: /cvsroot/rccparser/rcclient/NEWS,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** NEWS 6 Jan 2003 17:22:44 -0000 1.2 --- NEWS 10 Jan 2003 18:56:47 -0000 1.3 *************** *** 1,2 **** --- 1,36 ---- + [0.0.1] + * RCClient supports compressed communications with the server, through + the use of the compression() and setCompression() functions. To + change the current compression level (default is none), you first need + to send the request to the simulator, which is done with the + compression() function. The server will then reply with either + + (ok compression LEVEL) + + or + + (warning compression_unsupported) + + or not at all if your request was lost, or the compression requested + was greater than 9. + + If you receive the warning, the data will remain uncompressed and no + further action is required. + + If you receive acknowledgement of the new compression level, you MUST + call setCompression() with the new compression level, BEFORE + rcc::Parser::doBuildCompressionOK() returns. Otherwise subsequent + data will be read at the wrong compression level, which will result in + parse errors and loss of data. + + What's more, you CANNOT send any data after your request to change to + the compression level until the server has responded of you give up + the request as lost. Sound nasty? Well it is. Unfortunately there is + no nice solution because the server uses plain UDP, which does not + guarantee reliability. Unless the server changes this is as good as + we can get. + + The rcctest example now uses compression, so demostrate how it's done. + [0.0.0] * Initial release. Please see the README file for some basic Index: README =================================================================== RCS file: /cvsroot/rccparser/rcclient/README,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** README 6 Jan 2003 17:22:46 -0000 1.2 --- README 10 Jan 2003 18:56:47 -0000 1.3 *************** *** 16,34 **** components in the following locations: ! /usr/local/bin for the rcctest executable, /usr/local/lib for ! the RCClient library and /usr/local/include/rcclient for the RCClient headers. ! You may need administrator privilages to install RCClient into the default locations. These locations can be modified by using configure's `--prefix=DIR' and related options. See `configure --help' for more details. ! RCClient has serveral features that can be enabled or disabled at configure time by using the `--enable-FEATURE[=ARG]' or `--disable-FEATURE' parameters to `configure'. `--disable-FEATURE' is ! equivlant to `--enable-FEATURE=no' and `--enable-FEATURE' is equivlant ! to `--enable-FEATURE=yes'. The only valid values for `ARG' are `yes' ! and `no'. `--enable-shared=yes' will enable the building and installation of --- 16,34 ---- components in the following locations: ! /usr/local/bin for the rcctest executable, /usr/local/lib for the ! RCClient library and /usr/local/include/rcclient for the RCClient headers. ! You may need administrator privileges to install RCClient into the default locations. These locations can be modified by using configure's `--prefix=DIR' and related options. See `configure --help' for more details. ! RCClient has several features that can be enabled or disabled at configure time by using the `--enable-FEATURE[=ARG]' or `--disable-FEATURE' parameters to `configure'. `--disable-FEATURE' is ! equivalent to `--enable-FEATURE=no' and `--enable-FEATURE' is ! equivalent to `--enable-FEATURE=yes'. The only valid values for `ARG' ! are `yes' and `no'. `--enable-shared=yes' will enable the building and installation of *************** *** 44,56 **** To link against the shared library you must either use GNU Libtool, and specify the full pathname of the RCClient shared library, or use ! `-L<prefix>/lib' during linking and do at least one of ! the following: - add `<prefix>/lib' to the ! `LD_LIBRARY_PATH' environment variable during execution - add ! `<prefix>/lib' to the `LD_RUN_PATH' environment variable ! during linking - use the `-Wl,--rpath -Wl,<prefix>/lib' ! linker flag - have your system administrator add ! `<prefix>/lib' to `/etc/ld.so.conf' ! where <prefix> is where you installed rcclient (default is /usr/local). See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual --- 44,55 ---- To link against the shared library you must either use GNU Libtool, and specify the full pathname of the RCClient shared library, or use ! `-L<prefix>/lib' during linking and do at least one of the following: ! - add `<prefix>/lib' to the `LD_LIBRARY_PATH' environment variable ! during execution - add `<prefix>/lib' to the `LD_RUN_PATH' environment ! variable during linking - use the `-Wl,--rpath -Wl,<prefix>/lib' ! linker flag - have your system administrator add `<prefix>/lib' to ! `/etc/ld.so.conf' ! where <prefix> is where you installed RCClient (default is /usr/local). See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual *************** *** 62,67 **** Your code can be compiled with the static RCClient library by adding ! `-I<prefix>/rcclient -L<prefix>/lib -lrcclient' or ! modify as necessary if you installed rcclient into non-default directories. --- 61,66 ---- Your code can be compiled with the static RCClient library by adding ! `-I<prefix>/rcclient -L<prefix>/lib -lrcclient' or modify as necessary ! if you installed rcclient into non-default directories. *************** *** 71,75 **** ======== BUILDING ======== ! Once you have successully configured RCClient, simply run `make' to build the sources. --- 70,74 ---- ======== BUILDING ======== ! Once you have successfully configured RCClient, simply run `make' to build the sources. *************** *** 106,110 **** your_client.init( your_teamname, protocol_version, goalie_flag ); ! Apon recieving your init message, the server will start to send data to your client. You can start parsing the data by either calling the operator() or by passing your client to a thread and have it call the --- 105,109 ---- your_client.init( your_teamname, protocol_version, goalie_flag ); ! Apon receiving your init message, the server will start to send data to your client. You can start parsing the data by either calling the operator() or by passing your client to a thread and have it call the *************** *** 113,117 **** The operator() does not return until some error in parsing has ! occured, so if you chose not to use a threaded approach (which is a perfectly valid thing to do) you will only be able to call send functions (such as dash and turn) from within the rcc::Parser virtual --- 112,116 ---- The operator() does not return until some error in parsing has ! occurred, so if you chose not to use a threaded approach (which is a perfectly valid thing to do) you will only be able to call send functions (such as dash and turn) from within the rcc::Parser virtual *************** *** 121,125 **** also have to make sure that you return promptly from any of the rcc::Parser virtual functions. Failure to do so may result in a ! backup of data and potential data loss if the nework buffer overflows. ============== Making Contact ============== --- 120,156 ---- also have to make sure that you return promptly from any of the rcc::Parser virtual functions. Failure to do so may result in a ! backup of data and potential data loss if the network buffer ! overflows. ! ! RCClient supports compressed communications with the server, through ! the use of the compression() and setCompression() functions. To ! change the current compression level (default is none), you first need ! to send the request to the simulator, which is done with the ! compression() function. The server will then reply with either ! ! (ok compression LEVEL) ! ! or ! ! (warning compression_unsupported) ! ! or not at all if your request was lost, or the compression requested ! was greater than 9. ! ! If you receive the warning, the data will remain uncompressed and no ! further action is required. ! ! If you receive acknowledgement of the new compression level, you MUST ! call setCompression() with the new compression level, BEFORE ! rcc::Parser::doBuildCompressionOK() returns. Otherwise subsequent ! data will be read at the wrong compression level, which will result in ! parse errors and loss of data. ! ! What's more, you CANNOT send any data after your request to change to ! the compression level until the server has responded of you give up ! the request as lost. Sound nasty? Well it is. Unfortunately there is ! no nice solution because the server uses plain UDP, which does not ! guarantee reliability. Unless the server changes this is as good as ! we can get. ============== Making Contact ============== Index: acinclude.m4 =================================================================== RCS file: /cvsroot/rccparser/rcclient/acinclude.m4,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** acinclude.m4 6 Jan 2003 15:11:07 -0000 1.1.1.1 --- acinclude.m4 10 Jan 2003 18:56:47 -0000 1.2 *************** *** 23,24 **** --- 23,48 ---- AS_VAR_POPDEF([ac_lib_rccparser])dnl ])# AC_LIB_RCCPARSER + # AC_LIB_RCSSNET([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) + # --------------------------------------------------------- + # Checks for the rcssnet library + AC_DEFUN([AC_LIB_RCSSNET], + [AS_VAR_PUSHDEF([ac_lib_rcssnet], [ac_cv_lib_rcssnet])dnl + AC_CACHE_CHECK(whether the rcssnet library is available, ac_cv_lib_rcssnet, + [AC_LANG_PUSH(C++) + OLD_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -lrcssnet" + AC_LINK_IFELSE([@%:@include <rcssbase/net/udpsocket.hpp> + int main() + { + rcss::net::UDPSocket udps(); + return 0; + }], + [AS_VAR_SET(ac_lib_rcssnet, yes)], + [AS_VAR_SET(ac_lib_rcssnet, no) + LDFLAGS="$OLD_LDFLAGS" + ]) + AC_LANG_POP(C++) + ]) + AS_IF([test AS_VAR_GET(ac_lib_rcssnet) = yes], [$1], [$2]) + AS_VAR_POPDEF([ac_lib_rcssnet])dnl + ])# AC_LIB_RCSSNET Index: configure.ac =================================================================== RCS file: /cvsroot/rccparser/rcclient/configure.ac,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** configure.ac 6 Jan 2003 17:26:33 -0000 1.2 --- configure.ac 10 Jan 2003 18:56:47 -0000 1.3 *************** *** 16,19 **** --- 16,20 ---- dnl Checks for libraries. AC_CHECK_LIB(m, cos) + AC_CHECK_LIB(z, deflate) AC_LIB_RCCPARSER([], [ *************** *** 26,42 **** dnl Checks for header files. - AC_CHECK_HEADERS(unistd.h) - AC_CHECK_HEADERS(math.h) - AC_CHECK_HEADERS(sys/time.h) ! AC_CHECK_TYPES([socklen_t], [], [], [ ! #include <sys/types.h> ! #include <sys/socket.h> ! ]) ! AC_CHECK_TYPES([size_t], [], [], [ ! #include <sys/types.h> ! #include <sys/socket.h> ]) ! AC_CHECK_HEADER([rcssbase/udpsocket.h], [], [ AC_MSG_ERROR([Could not find the rcsoccersim/rcssbase files or they are out of date. Please (re)install rcsoccersim/rcssbase before --- 27,40 ---- dnl Checks for header files. ! AC_LIB_RCSSNET([], [ ! AC_MSG_ERROR([Could not find the rcsoccersim/rcssbase files or they ! are out of date. Please (re)install rcsoccersim/rcssbase before ! proceeding or specify the path to the rccbase headers by adding ! 'CXXFLAGS=\"-I<INCLUDEDIR> <YOUR_OTHER_FLAGS>\"' to configure's ! command line arguments.]) ]) ! ! AC_CHECK_HEADER([rcssbase/gzstream.h], [], [ AC_MSG_ERROR([Could not find the rcsoccersim/rcssbase files or they are out of date. Please (re)install rcsoccersim/rcssbase before |
From: Tom H. <tom...@us...> - 2003-01-10 18:56:52
|
Update of /cvsroot/rccparser/rcclient/src In directory sc8-pr-cvs1:/tmp/cvs-serv3353/src Modified Files: rcclient.cpp rcclient.h rcctest.cpp Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./README Updated readme * ./acinclude.m4 * ./configure.ac Added macro from rcssnet detection * ./src/rcclient.cpp * ./src/rcclient.h * ./src/rcctest.cpp Integrated with rcssnet and added compression support Index: rcclient.cpp =================================================================== RCS file: /cvsroot/rccparser/rcclient/src/rcclient.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** rcclient.cpp 6 Jan 2003 17:22:49 -0000 1.3 --- rcclient.cpp 10 Jan 2003 18:56:47 -0000 1.4 *************** *** 2,10 **** /*************************************************************************** ! rcclient.cpp RoboCup Client ------------------- ! begin : 24-MAY-2002 ! copyright : (C) 2002 by Tom Howard email : tom...@us... ***************************************************************************/ --- 2,10 ---- /*************************************************************************** ! rcclient.cpp RoboCup Client ------------------- ! begin : 03-JAN-2003 ! copyright : (C) 2003 by Tom Howard email : tom...@us... ***************************************************************************/ *************** *** 13,17 **** * * * This program is free software; you can redistribute it and/or modify * ! * it under the terms of the GNU LGPL as published by the Free Software * * Foundation; either version 2 of the License, or (at your option) any * * later version. * --- 13,17 ---- * * * This program is free software; you can redistribute it and/or modify * ! * it under the terms of the GNU GPL as published by the Free Software * * Foundation; either version 2 of the License, or (at your option) any * * later version. * *************** *** 19,27 **** --- 19,83 ---- ***************************************************************************/ + #ifdef HAVE_CONFIG_H + #include "config.h" + #endif #include "rcclient.h" + #include <rcssbase/net/udpsocket.hpp> + #include <rcssbase/net/iosocketstream.hpp> + #include <rcssbase/gzstream.h> namespace rcc { + class ClientImpl + { + public: + ClientImpl( Parser& parser, const rcss::net::Addr& addr, + int input_buffer_size, int output_buffer_size ) + : m_parser( parser ), + m_socket(), + m_input( m_socket, input_buffer_size ), + m_output( m_socket, output_buffer_size ), + m_cinput( (std::istream&)m_input ), + m_coutput( (std::ostream&)m_output ) + { + m_input.setEndPoint( addr ); + m_output.setEndPoint( addr ); + m_cinput.setLevel( -1 ); + m_coutput.setLevel( -1 ); + } + + ~ClientImpl() + { + m_socket.close(); + } + + Parser& + parser() + { return m_parser; } + + std::istream& + input() + { return m_cinput; } + + std::ostream& + output() + { return m_coutput; } + + void + setCompression( int level ) + { + m_cinput.setLevel( level ); + m_coutput.setLevel( level ); + } + private: + Parser& m_parser; + rcss::net::UDPSocket m_socket; + rcss::net::ISocketStream m_input; + rcss::net::OSocketStream m_output; + rcss::gz::gzistream m_cinput; + rcss::gz::gzostream m_coutput; + }; + const char* Client::PLAYERS[] = { "", "(goalie)" }; const char* Client::VIEW_WIDTHS[] = { "narrow", "normal", "wide" }; *************** *** 67,116 **** } ! Client::Client( Parser& parser, const rcss::UDPSocket::addr_type& addr, ! int input_buffer_size, int output_buffer_size ) ! : m_parser( parser ), ! m_socket(), ! m_input( m_socket, input_buffer_size ), ! m_output( m_socket, output_buffer_size ) ! { ! m_input.setEndPoint( addr ); ! m_output.setEndPoint( addr ); ! } ! ! Client::Client( Parser& parser, ! const rcss::UDPSocket::port_type& port, ! const rcss::UDPSocket::host_type& host, ! int input_buffer_size, int output_buffer_size ) ! : m_parser( parser ), ! m_socket(), ! m_input( m_socket, input_buffer_size ), ! m_output( m_socket, output_buffer_size ) ! { ! m_input.setEndPoint( port, host ); ! m_output.setEndPoint( port, host ); ! } ! ! Client::Client( Parser& parser, ! const rcss::UDPSocket::port_type& port, ! const std::string& host, int input_buffer_size, int output_buffer_size ) ! : m_parser( parser ), ! m_socket(), ! m_input( m_socket, input_buffer_size ), ! m_output( m_socket, output_buffer_size ) ! { ! m_input.setEndPoint( port, host ); ! m_output.setEndPoint( port, host ); ! } ! Client::~Client() ! { ! m_socket.close(); ! } bool Client::operator()() { ! return m_parser.parse( m_input ); } --- 123,160 ---- } ! Client::Client( Parser& parser, const rcss::net::Addr& addr, int input_buffer_size, int output_buffer_size ) ! : m_impl( new ClientImpl( parser, addr, ! input_buffer_size, output_buffer_size ) ) ! {} ! Client::~Client() ! {} ! ! void ! Client::setCompression( int level ) ! { m_impl->setCompression( level ); } ! ! std::istream& ! Client::input() ! { return m_impl->input(); } ! ! std::ostream& ! Client::output() ! { return m_impl->output(); } ! ! Parser& ! Client::parser() ! { return m_impl->parser(); } bool Client::operator()() { ! while( input().good() ) ! { ! if( !parser().parse( input() ) ) ! return false; ! } ! return true; } *************** *** 119,123 **** PlayerType type ) { ! m_output << "(init " << team_name << " (version " << version << ")" << type << ")" << std::ends << std::flush; } --- 163,167 ---- PlayerType type ) { ! output() << "(init " << team_name << " (version " << version << ")" << type << ")" << std::ends << std::flush; } *************** *** 126,130 **** Client::reconnect( const std::string& team_name, int unum ) { ! m_output << "(reconnect " << team_name << " " << unum << ")" << std::ends << std::flush; } --- 170,174 ---- Client::reconnect( const std::string& team_name, int unum ) { ! output() << "(reconnect " << team_name << " " << unum << ")" << std::ends << std::flush; } *************** *** 133,137 **** Client::dash( double power ) { ! m_output << "(dash " << power << ")" << std::ends << std::flush; } --- 177,181 ---- Client::dash( double power ) { ! output() << "(dash " << power << ")" << std::ends << std::flush; } *************** *** 139,143 **** Client::turn( double moment ) { ! m_output << "(turn " << moment << ")" << std::ends << std::flush; } --- 183,187 ---- Client::turn( double moment ) { ! output() << "(turn " << moment << ")" << std::ends << std::flush; } *************** *** 145,149 **** Client::turnNeck( double moment ) { ! m_output << "(turn_neck " << moment << ")" << std::ends << std::flush; } --- 189,193 ---- Client::turnNeck( double moment ) { ! output() << "(turn_neck " << moment << ")" << std::ends << std::flush; } *************** *** 151,155 **** Client::kick( double power, double dir ) { ! m_output << "(kick " << power << " " << dir << ")" << std::ends << std::flush; } --- 195,199 ---- Client::kick( double power, double dir ) { ! output() << "(kick " << power << " " << dir << ")" << std::ends << std::flush; } *************** *** 158,162 **** Client::catchBall( double dir ) { ! m_output << "(catch " << dir << ")" << std::ends << std::flush; } --- 202,206 ---- Client::catchBall( double dir ) { ! output() << "(catch " << dir << ")" << std::ends << std::flush; } *************** *** 164,168 **** Client::say( std::string message ) { ! m_output << "(say \"" << message << "\")" << std::ends << std::flush; } --- 208,212 ---- Client::say( std::string message ) { ! output() << "(say \"" << message << "\")" << std::ends << std::flush; } *************** *** 170,174 **** Client::senseBody() { ! m_output << "(sense_body)" << std::ends << std::flush; } --- 214,218 ---- Client::senseBody() { ! output() << "(sense_body)" << std::ends << std::flush; } *************** *** 176,180 **** Client::score() { ! m_output << "(score)" << std::ends << std::flush; } --- 220,224 ---- Client::score() { ! output() << "(score)" << std::ends << std::flush; } *************** *** 182,186 **** Client::move( double x, double y ) { ! m_output << "(move " << x << " " << y << ")" << std::ends << std::flush; } --- 226,230 ---- Client::move( double x, double y ) { ! output() << "(move " << x << " " << y << ")" << std::ends << std::flush; } *************** *** 189,203 **** Client::changeView( ViewWidthType width, ViewQualityType quality ) { ! m_output << "(change_view " << width << " " << quality << ")" << std::ends << std::flush; } ! // void ! // Client::compression( int level ); void Client::bye() { ! m_output << "(bye)" << std::ends << std::flush; } --- 233,251 ---- Client::changeView( ViewWidthType width, ViewQualityType quality ) { ! output() << "(change_view " << width << " " << quality << ")" << std::ends << std::flush; } ! void ! Client::compression( int level ) ! { ! output() << "(compression " << level << ")" ! << std::ends << std::flush; ! } void Client::bye() { ! output() << "(bye)" << std::ends << std::flush; } *************** *** 205,209 **** Client::done() { ! m_output << "(done)" << std::ends << std::flush; } --- 253,257 ---- Client::done() { ! output() << "(done)" << std::ends << std::flush; } *************** *** 211,215 **** Client::pointTo( double dist, double head ) { ! m_output << "(pointto " << dist << " " << head << ")" << std::ends << std::flush; } --- 259,263 ---- Client::pointTo( double dist, double head ) { ! output() << "(pointto " << dist << " " << head << ")" << std::ends << std::flush; } *************** *** 218,222 **** Client::pointToOff() { ! m_output << "(pointto off)" << std::ends << std::flush; } --- 266,270 ---- Client::pointToOff() { ! output() << "(pointto off)" << std::ends << std::flush; } *************** *** 224,228 **** Client::attentionTo( TeamType team, int unum ) { ! m_output << "(attentionto " << team << " " << unum << ")" << std::ends << std::flush; } --- 272,276 ---- Client::attentionTo( TeamType team, int unum ) { ! output() << "(attentionto " << team << " " << unum << ")" << std::ends << std::flush; } *************** *** 231,235 **** Client::attentionTo( const std::string& team_name, int unum ) { ! m_output << "(attentionto " << team_name << " " << unum << ")" << std::ends << std::flush; } --- 279,283 ---- Client::attentionTo( const std::string& team_name, int unum ) { ! output() << "(attentionto " << team_name << " " << unum << ")" << std::ends << std::flush; } *************** *** 238,242 **** Client::attentionToOff() { ! m_output << "(attentionto off)" << std::ends << std::flush; } --- 286,290 ---- Client::attentionToOff() { ! output() << "(attentionto off)" << std::ends << std::flush; } *************** *** 244,248 **** Client::tackle( double power ) { ! m_output << "(tackle " << power << ")" << std::ends << std::flush; } --- 292,296 ---- Client::tackle( double power ) { ! output() << "(tackle " << power << ")" << std::ends << std::flush; } *************** *** 250,254 **** Client::clangVer( int min, int max ) { ! m_output << "(clang (ver " << min << " " << max << "))" << std::ends << std::flush; } --- 298,302 ---- Client::clangVer( int min, int max ) { ! output() << "(clang (ver " << min << " " << max << "))" << std::ends << std::flush; } *************** *** 257,261 **** Client::ear( OnOffType on_off, TeamType side, EarModeType mode ) { ! m_output << "(ear (" << on_off << " " << side << " " << mode << "))" << std::ends << std::flush; } --- 305,309 ---- Client::ear( OnOffType on_off, TeamType side, EarModeType mode ) { ! output() << "(ear (" << on_off << " " << side << " " << mode << "))" << std::ends << std::flush; } *************** *** 264,268 **** Client::ear( OnOffType on_off, const std::string& team, EarModeType mode ) { ! m_output << "(ear (" << on_off << " " << team << " " << mode << "))" << std::ends << std::flush; } --- 312,316 ---- Client::ear( OnOffType on_off, const std::string& team, EarModeType mode ) { ! output() << "(ear (" << on_off << " " << team << " " << mode << "))" << std::ends << std::flush; } *************** *** 271,275 **** Client::ear( OnOffType on_off, TeamType side ) { ! m_output << "(ear (" << on_off << " " << side << "))" << std::ends << std::flush; } --- 319,323 ---- Client::ear( OnOffType on_off, TeamType side ) { ! output() << "(ear (" << on_off << " " << side << "))" << std::ends << std::flush; } *************** *** 278,282 **** Client::ear( OnOffType on_off, const std::string& team ) { ! m_output << "(ear (" << on_off << " " << team << "))" << std::ends << std::flush; } --- 326,330 ---- Client::ear( OnOffType on_off, const std::string& team ) { ! output() << "(ear (" << on_off << " " << team << "))" << std::ends << std::flush; } *************** *** 285,289 **** Client::ear( OnOffType on_off, EarModeType mode ) { ! m_output << "(ear (" << on_off << " " << mode << "))" << std::ends << std::flush; } --- 333,337 ---- Client::ear( OnOffType on_off, EarModeType mode ) { ! output() << "(ear (" << on_off << " " << mode << "))" << std::ends << std::flush; } *************** *** 292,299 **** Client::ear( OnOffType on_off ) { ! m_output << "(ear (" << on_off << "))" << std::ends << std::flush; } } --- 340,350 ---- Client::ear( OnOffType on_off ) { ! output() << "(ear (" << on_off << "))" << std::ends << std::flush; } + void + Client::sendUnknown( const std::string& message ) + { output() << message << std::ends << std::flush; } } Index: rcclient.h =================================================================== RCS file: /cvsroot/rccparser/rcclient/src/rcclient.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** rcclient.h 6 Jan 2003 17:22:53 -0000 1.2 --- rcclient.h 10 Jan 2003 18:56:48 -0000 1.3 *************** *** 5,10 **** RoboCup Client ------------------- ! begin : 24-MAY-2002 ! copyright : (C) 2002 by Tom Howard email : tom...@us... ***************************************************************************/ --- 5,10 ---- RoboCup Client ------------------- ! begin : 03-JAN-2003 ! copyright : (C) 2003 by Tom Howard email : tom...@us... ***************************************************************************/ *************** *** 13,17 **** * * * This program is free software; you can redistribute it and/or modify * ! * it under the terms of the GNU LGPL as published by the Free Software * * Foundation; either version 2 of the License, or (at your option) any * * later version. * --- 13,17 ---- * * * This program is free software; you can redistribute it and/or modify * ! * it under the terms of the GNU GPL as published by the Free Software * * Foundation; either version 2 of the License, or (at your option) any * * later version. * *************** *** 22,34 **** #define RCCLIENT_H - #ifdef HAVE_CONFIG_H - #include "config.h" - #endif - #include <rccparser/rccparser.h> ! #include <rcssbase/udpsocket.h> namespace rcc { class Client { --- 22,33 ---- #define RCCLIENT_H #include <rccparser/rccparser.h> ! #include <boost/shared_ptr.hpp> ! #include <rcssbase/net/addr.hpp> namespace rcc { + class ClientImpl; + class Client { *************** *** 73,91 **** operator<<( std::ostream& o, OnOffType on_off ); ! Client( Parser& parser, const rcss::UDPSocket::addr_type& addr, ! int input_buffer_size = 8192, int output_buffer_size = 8192 ); ! ! Client( Parser& parser, ! const rcss::UDPSocket::port_type& port, ! const rcss::UDPSocket::host_type& host = INADDR_ANY, ! int input_buffer_size = 8192, int output_buffer_size = 8192 ); ! ! Client( Parser& parser, ! const rcss::UDPSocket::port_type& port, ! const std::string& host, int input_buffer_size = 8192, int output_buffer_size = 8192 ); ! ~Client(); bool operator()(); --- 72,83 ---- operator<<( std::ostream& o, OnOffType on_off ); ! Client( Parser& parser, const rcss::net::Addr& addr, int input_buffer_size = 8192, int output_buffer_size = 8192 ); ! ~Client(); + void + setCompression( int level ); + bool operator()(); *************** *** 128,133 **** changeView( ViewWidthType width, ViewQualityType quality ); ! // void ! // compression( int level ); void --- 120,125 ---- changeView( ViewWidthType width, ViewQualityType quality ); ! void ! compression( int level ); void *************** *** 176,184 **** ear( OnOffType on_off ); private: ! Parser& m_parser; ! rcss::UDPSocket m_socket; ! rcss::IUDPSocketStream m_input; ! rcss::OUDPSocketStream m_output; }; } --- 168,184 ---- ear( OnOffType on_off ); + void + sendUnknown( const std::string& message ); private: ! std::istream& ! input(); ! ! std::ostream& ! output(); ! ! Parser& ! parser(); ! ! boost::shared_ptr< ClientImpl > m_impl; }; } Index: rcctest.cpp =================================================================== RCS file: /cvsroot/rccparser/rcclient/src/rcctest.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** rcctest.cpp 6 Jan 2003 15:11:07 -0000 1.1.1.1 --- rcctest.cpp 10 Jan 2003 18:56:48 -0000 1.2 *************** *** 2,10 **** /*************************************************************************** ! rcclient.cpp ! RoboCup Client ------------------- ! begin : 24-MAY-2002 ! copyright : (C) 2002 by Tom Howard email : tom...@us... ***************************************************************************/ --- 2,10 ---- /*************************************************************************** ! rcctest.cpp ! Dumb RoboCup Client ------------------- ! begin : 02-JAN-2003 ! copyright : (C) 2003 by Tom Howard email : tom...@us... ***************************************************************************/ *************** *** 13,17 **** * * * This program is free software; you can redistribute it and/or modify * ! * it under the terms of the GNU LGPL as published by the Free Software * * Foundation; either version 2 of the License, or (at your option) any * * later version. * --- 13,17 ---- * * * This program is free software; you can redistribute it and/or modify * ! * it under the terms of the GNU GPL as published by the Free Software * * Foundation; either version 2 of the License, or (at your option) any * * later version. * *************** *** 35,39 **** ClientParser( rcss::Parser& clp ) : rcc::Parser( clp ), ! m_client( NULL ) {} --- 35,40 ---- ClientParser( rcss::Parser& clp ) : rcc::Parser( clp ), ! m_client( NULL ), ! m_level( -1 ) {} *************** *** 49,58 **** doBuildInit( int unum ) { if( m_client ) ! m_client->move( 0, 0 ); } private: rcc::Client* m_client; }; --- 50,94 ---- doBuildInit( int unum ) { + std::cout << "Got init\n"; if( m_client ) ! { ! m_client->move( -10, -10 ); ! m_client->compression( 9 ); ! } ! } ! ! virtual ! void ! doBuildCompressionOK( int level ) ! { ! m_client->setCompression( level ); ! m_level = level; ! std::cout << "Compression level changed to " << level << std::endl; ! } + virtual + void + doBuildSenseBody( int time, + double stamina, + double effort, + double speed_mag, + double speed_head, + double head_angle, + int kick_count, + int dash_count, + int turn_count, + int say_count, + int turn_neck_count, + int catch_count, + int move_count, + int chg_view_count ) + { + if( m_level == 9 ) + m_client->move( -20, -20 ); + } private: rcc::Client* m_client; + int m_level; }; *************** *** 61,65 **** CLangParser clp; ClientParser parser( clp ); ! rcc::Client client( parser, 6000, "localhost" ); parser.setClient( client ); --- 97,101 ---- CLangParser clp; ClientParser parser( clp ); ! rcc::Client client( parser, rcss::net::Addr( 6000, "localhost" ) ); parser.setClient( client ); |
From: Tom H. <tom...@us...> - 2003-01-10 18:54:23
|
Update of /cvsroot/rccparser/rccparser In directory sc8-pr-cvs1:/tmp/cvs-serv2268 Modified Files: NEWS Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./Makefile.am * ./src/Makefile.am * ./src/rcclexer.lpp * ./src/rccparse.ypp * ./src/rccparser.h * ./src/rccptest.cpp * ./src/doxygen.conf Added a whole heap of documentation Added two missing player audio functions Index: NEWS =================================================================== RCS file: /cvsroot/rccparser/rccparser/NEWS,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** NEWS 10 Jan 2003 17:35:54 -0000 1.16 --- NEWS 10 Jan 2003 18:54:19 -0000 1.17 *************** *** 1,5 **** [1.2.1] * The code now has doxygen compatible emmbedded documentation. From ! the src directory run 'make doc' to build the documentation. * Fixed bug in handling of emmbedded nulls. --- 1,6 ---- [1.2.1] * The code now has doxygen compatible emmbedded documentation. From ! the src directory run 'make doc' to build the documentation. It's got ! a lot of stuff, but it's not yet complete. * Fixed bug in handling of emmbedded nulls. |
From: Tom H. <tom...@us...> - 2003-01-10 17:37:51
|
Update of /cvsroot/rccparser/rccparser/src In directory sc8-pr-cvs1:/tmp/cvs-serv2442/src Modified Files: rccparser.h Log Message: 2003-01-10 Tom Howard <tom...@us...> * ./Makefile.am * ./src/Makefile.am * ./src/rcclexer.lpp * ./src/rccparse.ypp * ./src/rccparser.h * ./src/rccptest.cpp * ./src/doxygen.conf Added a whole heap of documentation Added two missing player audio functions Index: rccparser.h =================================================================== RCS file: /cvsroot/rccparser/rccparser/src/rccparser.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** rccparser.h 10 Jan 2003 17:36:01 -0000 1.22 --- rccparser.h 10 Jan 2003 17:37:44 -0000 1.23 *************** *** 4024,4027 **** --- 4024,4029 ---- + //! \name Parameter Parsing Functions + //@{ /** This ungainly function is called after parsing a version 7 * server parameter message. *************** *** 4763,4767 **** void doBuildPlayerType() {} ! --- 4765,4769 ---- void doBuildPlayerType() {} ! //@} |