void AddToOpenList(CAStarNode pNewNode) { CAStarNode pParentNode = m_OpenNodes; CAStarNode pNodeToCheck = m_OpenNodes.GetpNext(); while (pNodeToCheck != null) { if (pNewNode.GetTotalCostF() < pNodeToCheck.GetTotalCostF()) { pParentNode.SetpNext(pNewNode); pNewNode.SetpNext(pNodeToCheck); return; } pParentNode = pNodeToCheck; pNodeToCheck = pNodeToCheck.GetpNext(); } // it is the worst one in the list put it at the end //assert(pParentNode.GetpNext() == null); pParentNode.SetpNext(pNewNode); //assert(pNewNode.GetpNext() == null); }