public void AddDrivingPath(DrivingPath newDrivingPath)
        {
            int startRoadID = newDrivingPath.GetStartRoadID();

            if (!DrivingPathList.ContainsKey(startRoadID))
            {
                Dictionary<string, DrivingPath> temp = new Dictionary<string, DrivingPath>();
                DrivingPathList.Add(startRoadID, temp);
            }

            if (DrivingPathList[startRoadID].ContainsKey(newDrivingPath.GetName()))
            {
                int currentPro = DrivingPathList[startRoadID][newDrivingPath.GetName()].GetProbability();
                DrivingPathList[startRoadID][newDrivingPath.GetName()].SetProbability(currentPro + newDrivingPath.GetProbability());
            }
            else
            {
                DrivingPathList[startRoadID].Add(newDrivingPath.GetName(), newDrivingPath);
            }

            GenerateDrivingPathTable(startRoadID);

            if (Simulator.TESTMODE)
                Simulator.UI.AddMessage("System", "Add driving path to road " + startRoadID);
        }
        public void SetDrivingPath(DrivingPath drivingPath)
        {
            this.drivingPath = drivingPath;
            passingRoads.Clear();

            AddPassingRoad(drivingPath.GetStartRoadID());

            foreach (int passingRoadID in drivingPath.GetPassingRoads())
            {
                AddPassingRoad(passingRoadID);
            }

            AddPassingRoad(drivingPath.GetGoalRoadID());
        }