GameObject * getClosestStar(GameObject *sourceObject) { GenericSLNode *x = SmartGameObjList->HeadNode; float closestDist = FLT_MAX; Vector3 sourceDist = Commands->Get_Position(sourceObject); GameObject *closestStar = NULL; while (x) { GameObject *o = (GameObject *)x->NodeData; if (o && o != sourceObject && Commands->Is_A_Star(o)) { Vector3 TargetPos = Commands->Get_Position(o); float distance = Commands->Get_Distance(sourceDist, TargetPos); if (distance < closestDist) { closestDist = distance; closestStar = o; } } x = x->NodeNext; } return closestStar; }