/*for a given list of droids, replace the old component if exists*/ void replaceDroidComponent(DROID *pList, UDWORD oldType, UDWORD oldCompInc, UDWORD newCompInc) { DROID *psDroid; //check thru the droids for (psDroid = pList; psDroid != NULL; psDroid = psDroid->psNext) { switchComponent(psDroid, oldType, oldCompInc, newCompInc); // Need to replace the units inside the transporter if (isTransporter(psDroid)) { replaceTransDroidComponents(psDroid, oldType, oldCompInc, newCompInc); } } }
/*replaces any components necessary for units that are inside a transporter*/ void replaceTransDroidComponents(DROID *psTransporter, UDWORD oldType, UDWORD oldCompInc, UDWORD newCompInc) { DROID *psCurr; ASSERT(isTransporter(psTransporter), "invalid unit type"); for (psCurr = psTransporter->psGroup->psList; psCurr != NULL; psCurr = psCurr->psGrpNext) { if (psCurr != psTransporter) { switchComponent(psCurr, oldType, oldCompInc, newCompInc); } } }