BWAPI
SPAR/AIModule/SparAIModule/DecisionMaking/Layer3Tactical/Script/Tasks/InitialScoutTask.h
Go to the documentation of this file.
00001 #pragma once
00002 #include "Layer3Task.h"
00003 
00004 class InitialScoutTask : public Layer3Task
00005 {
00006 public:
00007   InitialScoutTask(Layer3Script& layer3Script)
00008     : Layer3Task(layer3Script)
00009     , m_scout(*this)
00010     , m_scoutArrivedEventHandler(*this)
00011     , m_locationScoutedEventHandler(*this)
00012     , m_hasAlreadyRun(false)
00013   {
00014   }
00015 
00016   void run();
00017 
00018   virtual void runV()
00019   {
00020     return run();
00021   }
00022 
00023   void onScoutArrived(void* data, const layer2::Scout* action, StaticLocation* arrivedAtLocation, BWAPI::Unit*);
00024   void onLocationScouted(void* data, const layer2::Scout* action, PrimitiveLocation* scoutedLocation, BWAPI::Unit*);
00025   void onScoutEnded(void* data, const layer2::TacticalAction* action);
00026 
00027   bool hasAlreadyRun() const
00028   {
00029     return m_hasAlreadyRun;
00030   }
00031 
00032 protected:
00033   void executeScout(Scout* scout);
00034 
00035   EVENT_HANDLER3(InitialScoutTask, onScoutArrived, const layer2::Scout*, StaticLocation*, BWAPI::Unit*) m_scoutArrivedEventHandler; 
00036   EVENT_HANDLER3(InitialScoutTask, onLocationScouted, const layer2::Scout*, PrimitiveLocation*, BWAPI::Unit*) m_locationScoutedEventHandler;
00037 
00038   ProcessContainer<Scout> m_scout;
00039   std::list<BaseLocation*> m_baseLocationsToExplore;
00040   bool m_hasAlreadyRun;
00041 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines