1 #ifndef E323_TASKMERGE_H 2 #define E323_TASKMERGE_H 3 4 #include "../ATask.h" 5 6 struct MergeTask: public ATask { MergeTaskMergeTask7 MergeTask(AIClasses *_ai): ATask(_ai) { t = TASK_MERGE; } 8 MergeTask(AIClasses *_ai, std::list<CGroup*>& groups); 9 10 bool isRetreating; 11 // are groups retreating? 12 float range; 13 // the minimal range at which groups can merge 14 std::map<int, CGroup*> mergable; 15 // groups ready to merge <group_id, group> 16 CGroup *masterGroup; 17 // group which position is used as meeting point 18 19 bool reelectMasterGroup(); 20 /* overload */ 21 void onUpdate(); 22 /* overload */ 23 bool onValidate(); 24 /* overload */ 25 void remove(ARegistrar &group); 26 /* overload */ 27 void toStream(std::ostream& out) const; 28 }; 29 30 #endif 31