void CAICallback::EraseGroup(int groupid)
{
	if (CHECK_GROUPID(groupid)) {
		if(gh->groups[groupid])
			gh->RemoveGroup(gh->groups[groupid]);
	}
}
int CAICallback::GiveGroupOrder(int groupid, Command* c)
{
	if (CHECK_GROUPID(groupid) && c != NULL) {
		if(gh->groups[groupid] && gh->groups[groupid]->ai)
			gh->groups[groupid]->ai->GiveCommand(c);
	}
	return 0;
}
const std::vector<CommandDescription>* CAICallback::GetGroupCommands(int groupid)
{
	static std::vector<CommandDescription> tempcmds;

	if (CHECK_GROUPID(groupid)) {
		if(gh->groups[groupid] && gh->groups[groupid]->ai)
			return &gh->groups[groupid]->ai->GetPossibleCommands();
	}
	return &tempcmds;
}
bool CAICallback::AddUnitToGroup(int unitid,int groupid)
{
	if (CHECK_UNITID(unitid) && CHECK_GROUPID(groupid)) {
		CUnit* u=uh->units[unitid];
		if(u && u->team==team && gh->groups[groupid]){
			return u->SetGroup(gh->groups[groupid]);
		}
	}
	return false;
}
Esempio n. 5
0
void CAICallback::EraseGroup(int groupId)
{
	GML_RECMUTEX_LOCK(group); // EraseGroup

	if (CHECK_GROUPID(groupId)) {
		if (gh->groups[groupId]) {
			gh->RemoveGroup(gh->groups[groupId]);
		}
	}
}
Esempio n. 6
0
bool CAICallback::AddUnitToGroup(int unitId, int groupId)
{
	bool added = false;

	CUnit* unit = GetMyTeamUnit(unitId);
	if (unit) {
		if (CHECK_GROUPID(groupId) && gh->groups[groupId]) {
			added = unit->SetGroup(gh->groups[groupId]);
		}
	}

	return added;
}