public static void  OCCDQODQQD()
 {
     if (GetEasyRoads3DObjects())
     {
         ODDQOOCDOC.OCCDQODQQD(Selection.activeGameObject, null, "");
     }
     else
     {
         EditorUtility.DisplayDialog("Alert", "No EasyRoads3D objects found! Terrain functions cannot be accessed!", "Close");
     }
 }
 public static void  RestoreAllData()
 {
     if (GetEasyRoads3DObjects())
     {
         ODDQOOCDOC.OOCDCOQQQQ(Selection.activeGameObject);
         ODDQOOCDOC.OOCCDQOQQC(true, 100, 4, "", Selection.activeGameObject);
         ODDQOOCDOC.OCDDOODQOQ(Selection.activeGameObject);
     }
     else
     {
         EditorUtility.DisplayDialog("Alert", "No EasyRoads3D objects found! Terrain functions cannot be accessed!", "Close");
     }
 }
    public static void  OOCDQOOCDD()
    {
        if (GetEasyRoads3DObjects())
        {
            string path = "";
            if (EditorUtility.DisplayDialog("Road Splatmap", "Would you like to merge the terrain splatmap(s) with a road splatmap?", "Yes", "No"))
            {
                path = EditorUtility.OpenFilePanel("Select png road splatmap texture", "", "png");
            }


            ODDQOOCDOC.OOCCDQOQQC(true, 100, 4, path, Selection.activeGameObject);
        }
        else
        {
            EditorUtility.DisplayDialog("Alert", "No EasyRoads3D objects found! Terrain functions cannot be accessed!", "Close");
        }
    }
    public void OODDQODCCQ(Transform tr, ArrayList arr, String[] DOODQOQO, String[] OODDQOQO)
    {
        version    = "2.4.7";
        ODOOCDQODD = (GUISkin)Resources.Load("ER3DSkin", typeof(GUISkin));


        OQOCDODQOD = (Texture2D)Resources.Load("ER3DLogo", typeof(Texture2D));
        if (RoadObjectScript.objectStrings == null)
        {
            RoadObjectScript.objectStrings    = new string[3];
            RoadObjectScript.objectStrings[0] = "Road Object"; RoadObjectScript.objectStrings[1] = "River Object"; RoadObjectScript.objectStrings[2] = "Procedural Mesh Object";
        }
        obj        = tr;
        OCDQDOOOCO = new OQQCODDDQQ();
        OODQDDOOQC = obj.GetComponent <RoadObjectScript>();
        foreach (Transform child in obj)
        {
            if (child.name == "Markers")
            {
                OODDOCQDQO = child;
            }
        }
        OQQCODDDQQ.terrainList.Clear();
        Terrain[] terrains = (Terrain[])FindObjectsOfType(typeof(Terrain));
        foreach (Terrain terrain in terrains)
        {
            Terrains t = new Terrains();
            t.terrain = terrain;
            if (!terrain.gameObject.GetComponent <EasyRoads3DTerrainID>())
            {
                EasyRoads3DTerrainID terrainscript = (EasyRoads3DTerrainID)terrain.gameObject.AddComponent("EasyRoads3DTerrainID");
                string id = UnityEngine.Random.Range(100000000, 999999999).ToString();
                terrainscript.terrainid = id;
                t.id = id;
            }
            else
            {
                t.id = terrain.gameObject.GetComponent <EasyRoads3DTerrainID>().terrainid;
            }
            OCDQDOOOCO.OCCCOCQQCO(t);
        }
        ODDQOOCDOC.OCCCOCQQCO();
        if (roadMaterialEdit == null)
        {
            roadMaterialEdit = (Material)Resources.Load("materials/roadMaterialEdit", typeof(Material));
        }
        if (objectType == 0 && GameObject.Find(gameObject.name + "/road") == null)
        {
            GameObject road = new GameObject("road");
            road.transform.parent = transform;
        }

        OCDQDOOOCO.OCOCQCCDCD(obj, ODQCOQQQOC, OODQDDOOQC.roadWidth, surfaceOpacity, out OQODOQQDDQ, out indent, applyAnimation, waveSize, waveHeight);
        OCDQDOOOCO.OQCOOCDOCO       = OQCOOCDOCO;
        OCDQDOOOCO.OCQOCOCDOQ       = OCQOCOCDOQ;
        OCDQDOOOCO.OdQODQOD         = OdQODQOD + 1;
        OCDQDOOOCO.OOQQQDOD         = OOQQQDOD;
        OCDQDOOOCO.OOQQQDODOffset   = OOQQQDODOffset;
        OCDQDOOOCO.OOQQQDODLength   = OOQQQDODLength;
        OCDQDOOOCO.objectType       = objectType;
        OCDQDOOOCO.snapY            = snapY;
        OCDQDOOOCO.terrainRendered  = OQDDDOQQOC;
        OCDQDOOOCO.handleVegetation = handleVegetation;
        OCDQDOOOCO.raise            = raise;
        OCDQDOOOCO.roadResolution   = roadResolution;
        OCDQDOOOCO.multipleTerrains = multipleTerrains;
        OCDQDOOOCO.editRestore      = editRestore;
        OCDQDOOOCO.roadMaterialEdit = roadMaterialEdit;
        OCDQDOOOCO.renderRoad       = renderRoad;
        if (backupLocation == 0)
        {
            OQDCCCDDCD.backupFolder = "/EasyRoads3D";
        }
        else
        {
            OQDCCCDDCD.backupFolder = "/Assets/EasyRoads3D/backups";
        }

        ODODQOQO    = OCDQDOOOCO.OODQDQDDCC();
        ODODQOQOInt = OCDQDOOOCO.ODOOQODCQO();


        if (OQDDDOQQOC)
        {
            doRestore = true;
        }


        OCCCQCDCDC();

        if (arr != null || ODODQOOQ == null)
        {
            OOODOQCDDD(arr, DOODQOQO, OODDQOQO);
        }


        if (doRestore)
        {
            return;
        }
    }