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