00001 #ifndef REPAIR_ITEMS_HH_ 00002 # define REPAIR_ITEMS_HH_ 00003 00004 # include "task.hh" 00005 # include "objects_fwd.hh" 00006 # include "def_map.hh" 00007 00008 namespace tasks 00009 { 00010 class RepairItems : public Task 00011 { 00012 public: 00013 enum State 00014 { 00015 state_going_to_shop, 00016 state_repair 00017 }; 00018 00019 public: 00020 RepairItems(); 00021 ~RepairItems(); 00022 00023 virtual void execute(); 00024 virtual void process(); 00025 virtual void terminate(); 00026 00027 virtual const std::string &get_name() const; 00028 00029 protected: 00030 State _state; 00031 bool _done; 00032 00033 virtual void require_sub_task(); 00034 00035 void repair(); 00036 }; 00037 } 00038 00039 #endif