00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __BehaviorTeamMessage_h_
00010 #define __BehaviorTeamMessage_h_
00011
00012 #include "Tools/Streams/InOut.h"
00013 #include "Tools/Player.h"
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 class BehaviorTeamMessage
00026 {
00027 public:
00028
00029
00030
00031 BehaviorTeamMessage();
00032
00033
00034 double estimatedTimeToReachBall;
00035
00036
00037 enum Kickoff
00038 {
00039 sizeofKickoff = 3
00040 };
00041 double estimatedTimeToReachKickoff[sizeofKickoff];
00042
00043
00044
00045
00046 int numberOfTheChoosenPassPartner;
00047
00048
00049
00050
00051 enum Message
00052 {
00053 none,
00054
00055 justPerformedAKick,
00056 performingAKick,
00057 preparingAKick,
00058 dribbleBall,
00059 preparingAPass,
00060 passing,
00061 sync,
00062 moveForward,
00063 turn
00064 };
00065
00066
00067 Message message;
00068
00069
00070
00071
00072
00073 enum GameState { sleep, initial, ready, set, playing, penalized, finished } gameState;
00074
00075
00076
00077
00078
00079 enum DynamicRole { goalie, striker, offensiveSupporter, defensiveSupporter } dynamicRole;
00080
00081 unsigned long timeSinceRoleChange;
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104 enum StrikerCommand
00105 {
00106 noCommand,
00107 goToPosition,
00108 wingman
00109 } strikerCommand ;
00110
00111 enum {numberOfStrikerCommandParameters = 3};
00112
00113 double strikerCommandParameter[numberOfStrikerCommandParameters];
00114
00115 const char* getRoleAsString() const { return getRoleString(dynamicRole); } ;
00116
00117 static const char* getRoleString(DynamicRole role)
00118 {
00119 switch(role) {
00120 case goalie: return ("Goalie");
00121 case striker: return ("Striker");
00122 case offensiveSupporter: return ("OffensiveSupporter");
00123 case defensiveSupporter: return ("DefensiveSupporter");
00124 }
00125 return "Undefined player Role";
00126 }
00127
00128 };
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141 In& operator>>(In& stream,BehaviorTeamMessage& behaviorTeamMessage);
00142
00143
00144
00145
00146
00147
00148
00149 Out& operator<<(Out& stream, const BehaviorTeamMessage& behaviorTeamMessage);
00150
00151 #endif //__BehaviorTeamMessage_h_
00152