00001 #ifndef MOTOR_AI_H
00002 #define MOTOR_AI_H
00003
00019 #include "Observer.h"
00020 #include "PlansysObservation.h"
00021 #include "mainplansys.h"
00022 #include "waypoint.h"
00023 #include "posix_message_config.h"
00024 #include "init.h"
00025
00026 class MotorAi: public Observer {
00027 public:
00028 MotorAi( PlansysObservation * , int theTeamColor );
00029 ~MotorAi();
00030 void Update( Subject *, int typeOfObservation);
00031 int GetPriority();
00032 int AgentGlobalPriority();
00033 int GetAction( controll_struct *ai_controll_struct );
00034 int SetAgentActive( int active );
00035 int StrategyInterrupted();
00036 int GetInterruptAction(interrupt_controll_struct *interrupt_controll);
00037
00038
00039 private:
00045 int agentPriority;
00046 int inAction;
00047 int activeStrategy;
00048 int lastWaypointReached;
00049 PlansysObservation *_subject;
00050
00051 ai_waypoint ai_waypoint_3d;
00052 proxy_message my_proxy_message;
00053 cv_observation my_cv_observation;
00054 collision_detection_message collision_message;
00055 controll_struct local_controll_struct;
00056
00057 timeval collision_timer;
00058 double collision_time_value_1;
00059 double collision_time_value_2;
00060 int collision_counter;
00061
00062 };
00063
00064 #endif