short flags;
// These don't need to be transmitted
GODNode objList[GORD_LAST];
// Sorted lists of objectives we want to assign to
USNode canidateList[GORD_LAST];
// List of all possible canidate units for each order
short topPriority;
// Highest PO priority (for scaling)
short priorityObj;
// CampID of highest priority objective
public:
// constructors
GroundTaskingManagerClass(ushort
type, Team t);
GroundTaskingManagerClass(VU_BYTE **stream);
GroundTaskingManagerClass(FILE *file);
virtual
~GroundTaskingManagerClass();
virtual int SaveSize (void);
virtual int Save (VU_BYTE **stream);
virtual int Save (FILE *file);
virtual int Handle(VuFullUpdateEvent *event);
// Required pure virtuals
virtual void DoCalculations();
virtual int Task();
// support functions
void Setup (void);
void Cleanup (void);
int GetAddBits (Objective o, int to_collect);
int BuildObjectiveLists (int to_collect);
int CollectGroundAssets
(int to_collect);
void AddToList (Unit u, int orders);
void AddToLists(Unit u, int to_collect);
int IsValidObjective (int orders, Objective
o);
int AssignUnit (Unit u, int orders, Objective
o, int score);
int AssignUnits (int orders, int mode);
int AssignObjective (GODNode curo, int
orders, int mode);
int ScoreUnit (USNode curu, GODNode curo,
int orders, int mode);
int ScoreUnitFast (USNode curu, GODNode
curo, int orders, int mode);
void FinalizeOrders(void);
// core functions
void SendGTMMessage (VU_ID from, short
message, short data1, short data2, VU_ID data3);
// Private message handling functions (Called
by Process())
void RequestSupport (VU_ID enemy, int
division);
void RequestEngineer (Objective o, int
division);
void RequestAirDefense (Objective o, int
division);