00001 #ifndef AUTO_HUNT_HH_ 00002 # define AUTO_HUNT_HH_ 00003 00004 # include "task.hh" 00005 # include "objects_fwd.hh" 00006 # include "def_map.hh" 00007 # include "rxtools_fwd.hh" 00008 00009 namespace tasks 00010 { 00011 class AutoHunt : public Task 00012 { 00013 public: 00014 enum State 00015 { 00016 state_going_to_hunt, 00017 state_hunting, 00018 state_supply 00019 }; 00020 00021 public: 00022 AutoHunt(const objects::DefMap &hunt_map, 00023 const objects::HuntCourse &hunt_course); 00024 ~AutoHunt(); 00025 00026 virtual void execute(); 00027 virtual void process(); 00028 virtual void terminate(); 00029 00030 virtual const std::string &get_name() const; 00031 00032 void change_map(const objects::DefMap &hunt_map, 00033 const objects::HuntCourse &hunt_course); 00034 00035 protected: 00036 const objects::DefMap *_hunt_map; 00037 const objects::HuntCourse *_hunt_course; 00038 rxtimer::RxTimer *_timer; 00039 bool _changing_map; 00040 00041 State _state; 00042 00043 virtual void require_sub_task(); 00044 }; 00045 } 00046 00047 #endif