I try this, but it always crash when it try to remove a unit(idBP is the id of the unit)
Code: Select all
set<CUnit*>::iterator ui;
if(selectedUnits.selectedGroup!=-1){
for(ui=grouphandler->groups[selectedUnits.selectedGroup]->units.begin();ui!=grouphandler->groups[selectedUnits.selectedGroup]->units.end();++ui){
if ((*ui)->unitDef->id != idBP && !keys[VK_SHIFT])
{
selectedUnits.RemoveUnit((*ui));
}
if ((*ui)->unitDef->id == idBP && keys[VK_SHIFT])
{
selectedUnits.RemoveUnit((*ui));
}
}
} else {
for(ui=selectedUnits.selectedUnits.begin();ui!=selectedUnits.selectedUnits.end();++ui){
if ((*ui)->unitDef->id != idBP && !keys[VK_SHIFT])
{
selectedUnits.RemoveUnit((*ui));
}
if ((*ui)->unitDef->id == idBP && keys[VK_SHIFT])
{
selectedUnits.RemoveUnit((*ui));
}
}
}