//----------------------------------------------------------------------------- // Purpose: Adds addRoute to the end of oldRoute //----------------------------------------------------------------------------- void AddWaypointLists(AI_Waypoint_t *oldRoute, AI_Waypoint_t *addRoute) { // Add to the end of the route AI_Waypoint_t *waypoint = oldRoute; while (waypoint->GetNext()) { waypoint = waypoint->GetNext(); } waypoint->ModifyFlags( bits_WP_TO_GOAL, false ); // Check for duplication, but copy the type if (waypoint->iNodeID != NO_NODE && waypoint->iNodeID == addRoute->iNodeID ) { // waypoint->iWPType = addRoute->iWPType; <<TODO>> found case where this was bad AI_Waypoint_t *pNext = addRoute->GetNext(); delete addRoute; waypoint->SetNext(pNext); } else { waypoint->SetNext(addRoute); } while (waypoint->GetNext()) { waypoint = waypoint->GetNext(); } waypoint->ModifyFlags( bits_WP_TO_GOAL, true ); }