}     // end method CheckAdjacentRoad

    public void AddRoad(string pHexPrefabName, string pSideName)
    {
        bool           foundHex  = false;
        bool           validRoad = true;
        string         outputString;
        string         roadName;
        Vector3        roadPosition = new Vector3(-100f, 100f, 0f);
        Vector3        roadOffset;
        float          roadRotation = 0f;
        RoadDataScript tempRoadData;

        roadName = "Road" + (roadList.Count + 1).ToString();
        switch (pSideName)
        {
        case "LeftSide":
            roadOffset   = new Vector3(-0.5f, 0f, -0.1f);
            roadRotation = 0f;
            break;

        case "RightSide":
            roadOffset   = new Vector3(0.5f, 0f, -0.1f);
            roadRotation = 0f;
            break;

        case "ULSide":
            roadOffset   = new Vector3(-0.25f, 0.4296876f, -0.1f);
            roadRotation = 120f;
            break;

        case "URSide":
            roadOffset   = new Vector3(0.25f, 0.4296876f, -0.1f);
            roadRotation = 60f;
            break;

        case "LLSide":
            roadOffset   = new Vector3(-0.25f, -0.4296876f, -0.1f);
            roadRotation = 60f;
            break;

        case "LRSide":
            roadOffset   = new Vector3(0.25f, -0.4296876f, -0.1f);
            roadRotation = 120f;
            break;

        default:
            validRoad    = false;
            roadOffset   = new Vector3(-100f, 100f, 0f);
            roadRotation = 0f;
            outputString = "GameControlScript method AddRoad was passed " +
                           "the following invalid side name: " + pSideName;
            Debug.Log(outputString);
            break;
        }         // end switch

        if (!validRoad)
        {
            HelperScript.enableRoads = true;
            return;
        }

        foreach (HexDataScript hexData in hexList)
        {
            if (!foundHex && hexData.hexDataName == pHexPrefabName)
            {
                Vector3 newPosition = hexData.hexDataPosition + roadOffset;
                if (!RoadPositionEmpty(newPosition))
                {
                    HelperScript.enableRoads = true;
                    return;
                }
                else
                {
                    GameObject newRoad = (GameObject)Instantiate(roadPrefab, newPosition,
                                                                 Quaternion.Euler(0, 0, roadRotation));
                    newRoad.name = roadName;
                    newRoad.GetComponent <RoadPrefabData>().SetRoadName(newRoad.name);
                    newRoad.GetComponent <RoadPrefabData>().SetRoadID(roadList.Count + 1);
                    newRoad.GetComponent <RoadPrefabData>().SetRoadColor(playerList[0].playerColor);
                    roadPosition = newRoad.transform.position;
                    foundHex     = true;
                }
            }
        }

        tempRoadData = new RoadDataScript();
        tempRoadData.roadDataName     = roadName;
        tempRoadData.roadDataID       = roadList.Count + 1;
        tempRoadData.roadDataColor    = playerList[0].playerColor;
        tempRoadData.roadDataPosition = roadPosition;
        tempRoadData.roadDataPlayer   = playerList[0].playerName;
        tempRoadData.roadHexNeighbors = CalcRoadHexNeighbors(roadPosition, roadRotation);
        roadList.Add(tempRoadData);

        tempRoadData.LogRoadData();

        HelperScript.enableRoads = false; // turn off road adding
    }                                     // end method AddRoad
    public void AddRoad(string pHexPrefabName, string pSideName)
    {
        bool foundHex = false;
        bool validRoad = true;
        string outputString;
        string roadName;
        Vector3 roadPosition = new Vector3(-100f, 100f, 0f);
        Vector3 roadOffset;
        float roadRotation = 0f;
        RoadDataScript tempRoadData;

        roadName = "Road" + (roadList.Count + 1).ToString();
        switch (pSideName)
        {
        case "LeftSide":
            roadOffset = new Vector3(-0.5f, 0f, -0.1f);
            roadRotation = 0f;
            break;
        case "RightSide":
            roadOffset = new Vector3(0.5f, 0f, -0.1f);
            roadRotation = 0f;
            break;
        case "ULSide":
            roadOffset = new Vector3(-0.25f, 0.4296876f, -0.1f);
            roadRotation = 120f;
            break;
        case "URSide":
            roadOffset = new Vector3(0.25f, 0.4296876f, -0.1f);
            roadRotation = 60f;
            break;
        case "LLSide":
            roadOffset = new Vector3(-0.25f, -0.4296876f, -0.1f);
            roadRotation = 60f;
            break;
        case "LRSide":
            roadOffset = new Vector3(0.25f, -0.4296876f, -0.1f);
            roadRotation = 120f;
            break;
        default:
            validRoad = false;
            roadOffset = new Vector3(-100f, 100f, 0f);
            roadRotation = 0f;
            outputString = "GameControlScript method AddRoad was passed " +
                "the following invalid side name: " + pSideName;
            Debug.Log(outputString);
            break;
        } // end switch

        if (!validRoad)
        {
            HelperScript.enableRoads = true;
            return;
        }

        foreach (HexDataScript hexData in hexList)
        {
            if (!foundHex && hexData.hexDataName == pHexPrefabName)
            {
                Vector3 newPosition = hexData.hexDataPosition + roadOffset;
                if (!RoadPositionEmpty(newPosition))
                {
                    HelperScript.enableRoads = true;
                    return;
                }
                else
                {
                    GameObject newRoad = (GameObject)Instantiate(roadPrefab, newPosition,
                                                                 Quaternion.Euler(0, 0, roadRotation));
                    newRoad.name = roadName;
                    newRoad.GetComponent<RoadPrefabData>().SetRoadName(newRoad.name);
                    newRoad.GetComponent<RoadPrefabData>().SetRoadID(roadList.Count + 1);
                    newRoad.GetComponent<RoadPrefabData>().SetRoadColor(playerList[0].playerColor);
                    roadPosition = newRoad.transform.position;
                    foundHex = true;
                }
            }
        }

        tempRoadData = new RoadDataScript();
        tempRoadData.roadDataName = roadName;
        tempRoadData.roadDataID = roadList.Count + 1;
        tempRoadData.roadDataColor = playerList[0].playerColor;
        tempRoadData.roadDataPosition = roadPosition;
        tempRoadData.roadDataPlayer = playerList[0].playerName;
        tempRoadData.roadHexNeighbors = CalcRoadHexNeighbors(roadPosition, roadRotation);
        roadList.Add(tempRoadData);

        tempRoadData.LogRoadData();

        HelperScript.enableRoads = false; // turn off road adding
    }