CCArray *Building::getTransferFloors(){ CCArray *transferFloors = CCArray::create(); for(int i = 0; i < this->arrayFloors->count(); i++){ Floor *floor = (Floor *)this->arrayFloors->objectAtIndex(i); if(floor->getTransferLeft() || floor->getTransferRight()){ transferFloors->addObject(floor); } } return transferFloors; }
Floor *Building::findNearestTransferLeftFloor(int actualFloorNumber){ CCArray *transferFloors = this->getTransferFloors(); Floor *actualFloor = NULL; int actualDiff = 99; for(int i = 0; i < transferFloors->count(); i++){ Floor *floor = (Floor *)transferFloors->objectAtIndex(i); if(floor->getTransferLeft()){ int floorNumber = floor->getFloorNumber(); int diff = abs(actualFloorNumber - floorNumber); if(diff < actualDiff){ actualDiff = diff; actualFloor = floor; } } } return actualFloor; }