void CSelectedUnits::AddUnit(CUnit* unit) { // if unit is being transported by eg. Hulk or Atlas // then we should not be able to select it CTransportUnit *trans=unit->GetTransporter(); if (trans != NULL && !trans->unitDef->isFirePlatform) { return; } if (unit->noSelect) { return; } GML_RECMUTEX_LOCK(sel); // AddUnit selectedUnits.insert(unit); AddDeathDependence(unit); selectionChanged = true; possibleCommandsChanged = true; if (!(unit->group) || unit->group->id != selectedGroup) selectedGroup = -1; unit->commandAI->selected = true; }
void CSelectedUnits::AddUnit(CUnit* unit) { // if unit is being transported by eg. Hulk or Atlas // then we should not be able to select it if (unit->transporter != NULL && !unit->transporter->unitDef->isFirePlatform) { return; } if (unit->noSelect) { return; } selectedUnits.insert(unit); AddDeathDependence(unit); selectionChanged = true; possibleCommandsChanged = true; if (!(unit->group) || unit->group->id != selectedGroup) selectedGroup = -1; PUSH_CODE_MODE; ENTER_MIXED; unit->commandAI->selected = true; POP_CODE_MODE; }
void CSelectedUnits::AddUnit(CUnit* unit) { selectedUnits.insert(unit); AddDeathDependence(unit); selectionChanged=true; possibleCommandsChanged=true; if(!(unit->group) || unit->group->id != selectedGroup) selectedGroup=-1; PUSH_CODE_MODE; ENTER_MIXED; unit->commandAI->selected=true; POP_CODE_MODE; }
void CSelectedUnits::SelectGroup(int num) { ClearSelected(); selectedGroup=num; CGroup* group=grouphandler->groups[num]; set<CUnit*>::iterator ui; ENTER_MIXED; for(ui=group->units.begin();ui!=group->units.end();++ui){ (*ui)->commandAI->selected=true; selectedUnits.insert(*ui); AddDeathDependence(*ui); } ENTER_UNSYNCED; possibleCommandsChanged=true; selectionChanged=true; }
void CSelectedUnits::SelectGroup(int num) { GML_RECMUTEX_LOCK(grpsel); // SelectGroup - not needed? only reading group ClearSelected(); selectedGroup=num; CGroup* group=grouphandlers[gu->myTeam]->groups[num]; CUnitSet::iterator ui; for (ui = group->units.begin(); ui != group->units.end(); ++ui) { if (!(*ui)->noSelect) { (*ui)->commandAI->selected = true; selectedUnits.insert(*ui); AddDeathDependence(*ui); } } selectionChanged = true; possibleCommandsChanged = true; }