private void SelectBranch(string branchName, Action onFinish) { var nextNode = currentNode.GetNext(branchName); if (!checkpointManager.IsBranchReached(nodeHistory, branchName)) { // Tell the checkpoint manager that the branch has been selected checkpointManager.SetBranchReached(nodeHistory, branchName); } MoveToNextNode(nextNode, onFinish); }