// Token: 0x06004894 RID: 18580 RVA: 0x001120B0 File Offset: 0x001102B0
 public void ResetMaterials(global::MarkerScript markerScript)
 {
     if (this.OOQQCODOCD != null)
     {
         this.OOQQCODOCD.OODCDQDOCO(this.OCQOCOCQQO, this.OCQOCOCQQOs, markerScript.OCCCCODCOD, markerScript.OQCQOQQDCQ, this.OODDDCQCOC, ref markerScript.OCQOCOCQQOs, ref markerScript.trperc, this.OCQOCOCQQOs);
     }
 }
 // Token: 0x06004895 RID: 18581 RVA: 0x00112104 File Offset: 0x00110304
 public void OOOOQCDODD(global::MarkerScript markerScript)
 {
     if (markerScript.OQCQOQQDCQ != markerScript.ODOOQQOO)
     {
         this.OOQQCODOCD.OODCDQDOCO(this.OCQOCOCQQO, this.OCQOCOCQQOs, markerScript.OCCCCODCOD, markerScript.OQCQOQQDCQ, this.OODDDCQCOC, ref markerScript.OCQOCOCQQOs, ref markerScript.trperc, this.OCQOCOCQQOs);
         markerScript.ODOOQQOO = markerScript.OQCQOQQDCQ;
     }
     this.OCOOCODDOC(this.OODCCOODCC.geoResolution, false, false);
 }
    // Token: 0x06004892 RID: 18578 RVA: 0x00111F44 File Offset: 0x00110144
    public void OCCOCQQQDO(global::MarkerScript markerScript)
    {
        this.OCQOCOCQQO = markerScript.transform;
        List <GameObject> list = new List <GameObject>();

        for (int i = 0; i < this.OCQOCOCQQOs.Length; i++)
        {
            if (this.OCQOCOCQQOs[i] != markerScript.gameObject)
            {
                list.Add(this.OCQOCOCQQOs[i]);
            }
        }
        list.Add(markerScript.gameObject);
        this.OCQOCOCQQOs = list.ToArray();
        this.OCQOCOCQQO  = markerScript.transform;
        this.OOQQCODOCD.OODCDQDOCO(this.OCQOCOCQQO, this.OCQOCOCQQOs, markerScript.OCCCCODCOD, markerScript.OQCQOQQDCQ, this.OODDDCQCOC, ref markerScript.OCQOCOCQQOs, ref markerScript.trperc, this.OCQOCOCQQOs);
        this.ODOCDOOOQQ = -1;
    }
    // Token: 0x06004896 RID: 18582 RVA: 0x0011217C File Offset: 0x0011037C
    private void OQDODCODOQ(string ctrl, global::MarkerScript markerScript)
    {
        int num = 0;

        foreach (Transform transform in markerScript.OCQOCOCQQOs)
        {
            global::MarkerScript component = transform.GetComponent <global::MarkerScript>();
            if (ctrl == "rs")
            {
                component.LeftSurrounding(markerScript.rs - markerScript.ODOQQOOO, markerScript.trperc[num]);
            }
            else if (ctrl == "ls")
            {
                component.RightSurrounding(markerScript.ls - markerScript.DODOQQOO, markerScript.trperc[num]);
            }
            else if (ctrl == "ri")
            {
                component.LeftIndent(markerScript.ri - markerScript.OOQOQQOO, markerScript.trperc[num]);
            }
            else if (ctrl == "li")
            {
                component.RightIndent(markerScript.li - markerScript.ODODQQOO, markerScript.trperc[num]);
            }
            else if (ctrl == "rt")
            {
                component.LeftTilting(markerScript.rt - markerScript.ODDQODOO, markerScript.trperc[num]);
            }
            else if (ctrl == "lt")
            {
                component.RightTilting(markerScript.lt - markerScript.ODDOQOQQ, markerScript.trperc[num]);
            }
            else if (ctrl == "floorDepth")
            {
                component.FloorDepth(markerScript.floorDepth - markerScript.oldFloorDepth, markerScript.trperc[num]);
            }
            num++;
        }
    }
    // Token: 0x060048A8 RID: 18600 RVA: 0x001137E8 File Offset: 0x001119E8
    public ArrayList ODCOQCODCC()
    {
        ArrayList arrayList = new ArrayList();

        foreach (object obj in this.obj)
        {
            Transform transform = (Transform)obj;
            if (transform.name == "Markers")
            {
                foreach (object obj2 in transform)
                {
                    Transform            transform2 = (Transform)obj2;
                    global::MarkerScript component  = transform2.GetComponent <global::MarkerScript>();
                    arrayList.Add(component.ODDGDOOO);
                    arrayList.Add(component.ODDQOODO);
                    if (transform2.name == "Marker0003")
                    {
                    }
                    arrayList.Add(component.ODDQOOO);
                }
            }
        }
        return(arrayList);
    }
    // Token: 0x060048AA RID: 18602 RVA: 0x001139B4 File Offset: 0x00111BB4
    public void OOOOOOODCD(ArrayList arr, string[] DOODQOQO, string[] OODDQOQO)
    {
        bool flag = false;

        global::RoadObjectScript.ODODOQQO = DOODQOQO;
        global::RoadObjectScript.ODODQOOQ = OODDQOQO;
        ArrayList arrayList = new ArrayList();

        if (this.obj == null)
        {
            this.ODOCOQCCOC(base.transform, null, null, null);
        }
        foreach (object obj in this.obj)
        {
            Transform transform = (Transform)obj;
            if (transform.name == "Markers")
            {
                foreach (object obj2 in transform)
                {
                    Transform            transform2 = (Transform)obj2;
                    global::MarkerScript component  = transform2.GetComponent <global::MarkerScript>();
                    component.OQODQQDO.Clear();
                    component.ODOQQQDO.Clear();
                    component.OQQODQQOO.Clear();
                    component.ODDOQQOO.Clear();
                    arrayList.Add(component);
                }
            }
        }
        this.mSc = (global::MarkerScript[])arrayList.ToArray(typeof(global::MarkerScript));
        ArrayList arrayList2 = new ArrayList();
        int       num        = 0;
        int       num2       = 0;

        if (this.ODQQQQQO != null)
        {
            if (arr.Count == 0)
            {
                return;
            }
            for (int i = 0; i < global::RoadObjectScript.ODODOQQO.Length; i++)
            {
                ODODDQQO ododdqqo = (ODODDQQO)arr[i];
                for (int j = 0; j < this.ODQQQQQO.Length; j++)
                {
                    if (global::RoadObjectScript.ODODOQQO[i] == this.ODQQQQQO[j])
                    {
                        num++;
                        if (this.ODODQQOD.Length > j)
                        {
                            arrayList2.Add(this.ODODQQOD[j]);
                        }
                        else
                        {
                            arrayList2.Add(false);
                        }
                        foreach (global::MarkerScript markerScript in this.mSc)
                        {
                            int num3 = -1;
                            for (int l = 0; l < markerScript.ODDOOQDO.Length; l++)
                            {
                                if (ododdqqo.id == markerScript.ODDOOQDO[l])
                                {
                                    num3 = l;
                                    break;
                                }
                            }
                            if (num3 >= 0)
                            {
                                markerScript.OQODQQDO.Add(markerScript.ODDOOQDO[num3]);
                                markerScript.ODOQQQDO.Add(markerScript.ODDGDOOO[num3]);
                                markerScript.OQQODQQOO.Add(markerScript.ODDQOOO[num3]);
                                if (ododdqqo.sidewaysDistanceUpdate == 0 || (ododdqqo.sidewaysDistanceUpdate == 2 && markerScript.ODDQOODO[num3] != ododdqqo.oldSidwaysDistance))
                                {
                                    markerScript.ODDOQQOO.Add(markerScript.ODDQOODO[num3]);
                                }
                                else
                                {
                                    markerScript.ODDOQQOO.Add(ododdqqo.splinePosition);
                                }
                            }
                            else
                            {
                                markerScript.OQODQQDO.Add(ododdqqo.id);
                                markerScript.ODOQQQDO.Add(ododdqqo.markerActive);
                                markerScript.OQQODQQOO.Add(true);
                                markerScript.ODDOQQOO.Add(ododdqqo.splinePosition);
                            }
                        }
                    }
                }
                if (ododdqqo.sidewaysDistanceUpdate != 0)
                {
                }
                flag = false;
            }
        }
        for (int m = 0; m < global::RoadObjectScript.ODODOQQO.Length; m++)
        {
            ODODDQQO ododdqqo2 = (ODODDQQO)arr[m];
            bool     flag2     = false;
            for (int n = 0; n < this.ODQQQQQO.Length; n++)
            {
                if (global::RoadObjectScript.ODODOQQO[m] == this.ODQQQQQO[n])
                {
                    flag2 = true;
                }
            }
            if (!flag2)
            {
                num2++;
                arrayList2.Add(false);
                foreach (global::MarkerScript markerScript2 in this.mSc)
                {
                    markerScript2.OQODQQDO.Add(ododdqqo2.id);
                    markerScript2.ODOQQQDO.Add(ododdqqo2.markerActive);
                    markerScript2.OQQODQQOO.Add(true);
                    markerScript2.ODDOQQOO.Add(ododdqqo2.splinePosition);
                }
            }
        }
        this.ODODQQOD = (bool[])arrayList2.ToArray(typeof(bool));
        this.ODQQQQQO = new string[global::RoadObjectScript.ODODOQQO.Length];
        global::RoadObjectScript.ODODOQQO.CopyTo(this.ODQQQQQO, 0);
        ArrayList arrayList3 = new ArrayList();

        for (int num5 = 0; num5 < this.ODODQQOD.Length; num5++)
        {
            if (this.ODODQQOD[num5])
            {
                arrayList3.Add(num5);
            }
        }
        this.OOQQQOQO = (int[])arrayList3.ToArray(typeof(int));
        foreach (global::MarkerScript markerScript3 in this.mSc)
        {
            markerScript3.ODDOOQDO = (string[])markerScript3.OQODQQDO.ToArray(typeof(string));
            markerScript3.ODDGDOOO = (bool[])markerScript3.ODOQQQDO.ToArray(typeof(bool));
            markerScript3.ODDQOOO  = (bool[])markerScript3.OQQODQQOO.ToArray(typeof(bool));
            markerScript3.ODDQOODO = (float[])markerScript3.ODDOQQOO.ToArray(typeof(float));
        }
        if (flag)
        {
        }
    }
    // Token: 0x060048A4 RID: 18596 RVA: 0x00113274 File Offset: 0x00111474
    public void ODQDCQQDDO(Vector3 pos, bool doInsert)
    {
        if (!this.displayRoad)
        {
            this.displayRoad = true;
            this.OOQQCODOCD.OODDDCQCCQ(this.displayRoad, this.OODDDCQCOC);
        }
        int        num         = -1;
        int        num2        = -1;
        float      num3        = 10000f;
        float      num4        = 10000f;
        Vector3    vector      = pos;
        OQDQOQDOQO oqdqoqdoqo  = (OQDQOQDOQO)this.OOQQCODOCD.OOODOQDODQ[0];
        OQDQOQDOQO oqdqoqdoqo2 = (OQDQOQDOQO)this.OOQQCODOCD.OOODOQDODQ[1];

        this.OOQQCODOCD.ODDDDCCDCO(pos, ref num, ref num2, ref num3, ref num4, ref oqdqoqdoqo, ref oqdqoqdoqo2, ref vector);
        pos = vector;
        if (doInsert && num >= 0 && num2 >= 0)
        {
            if (this.OODCCOODCC.OOQDOOQQ && num2 == this.OOQQCODOCD.OOODOQDODQ.Count - 1)
            {
                this.OODDQODDCC(pos);
            }
            else
            {
                OQDQOQDOQO oqdqoqdoqo3 = (OQDQOQDOQO)this.OOQQCODOCD.OOODOQDODQ[num2];
                string     name        = oqdqoqdoqo3.object1.name;
                int        num5        = num2 + 2;
                for (int i = num2; i < this.OOQQCODOCD.OOODOQDODQ.Count - 1; i++)
                {
                    oqdqoqdoqo3 = (OQDQOQDOQO)this.OOQQCODOCD.OOODOQDODQ[i];
                    string name2;
                    if (num5 < 10)
                    {
                        name2 = "Marker000" + num5.ToString();
                    }
                    else if (num5 < 100)
                    {
                        name2 = "Marker00" + num5.ToString();
                    }
                    else
                    {
                        name2 = "Marker0" + num5.ToString();
                    }
                    oqdqoqdoqo3.object1.name = name2;
                    num5++;
                }
                oqdqoqdoqo3 = (OQDQOQDOQO)this.OOQQCODOCD.OOODOQDODQ[num];
                Transform transform = (Transform)Object.Instantiate(oqdqoqdoqo3.object1.transform, pos, oqdqoqdoqo3.object1.rotation);
                transform.gameObject.name = name;
                transform.parent          = this.OODDDCQCOC;
                global::MarkerScript component = transform.GetComponent <global::MarkerScript>();
                component.OOCCDCOQCQ = false;
                float num6 = num3 + num4;
                float num7 = num3 / num6;
                float num8 = oqdqoqdoqo.ri - oqdqoqdoqo2.ri;
                component.ri = oqdqoqdoqo.ri - num8 * num7;
                num8         = oqdqoqdoqo.li - oqdqoqdoqo2.li;
                component.li = oqdqoqdoqo.li - num8 * num7;
                num8         = oqdqoqdoqo.rt - oqdqoqdoqo2.rt;
                component.rt = oqdqoqdoqo.rt - num8 * num7;
                num8         = oqdqoqdoqo.lt - oqdqoqdoqo2.lt;
                component.lt = oqdqoqdoqo.lt - num8 * num7;
                num8         = oqdqoqdoqo.rs - oqdqoqdoqo2.rs;
                component.rs = oqdqoqdoqo.rs - num8 * num7;
                num8         = oqdqoqdoqo.ls - oqdqoqdoqo2.ls;
                component.ls = oqdqoqdoqo.ls - num8 * num7;
                this.OCOOCODDOC(this.OODCCOODCC.geoResolution, false, false);
                if (this.materialType == 0)
                {
                    this.OOQQCODOCD.OOQOOCDQOD(this.materialType);
                }
                if (this.objectType == 2)
                {
                    component.surface.gameObject.SetActive(false);
                }
            }
        }
        this.OOQODQOCOC();
    }
    // Token: 0x0600489C RID: 18588 RVA: 0x00112ADC File Offset: 0x00110CDC
    public void OCOOCODDOC(float geo, bool renderMode, bool camMode)
    {
        this.OOQQCODOCD.OOODOQDODQ.Clear();
        int num = 0;

        foreach (object obj in this.obj)
        {
            Transform transform = (Transform)obj;
            if (transform.name == "Markers")
            {
                foreach (object obj2 in transform)
                {
                    Transform            transform2 = (Transform)obj2;
                    global::MarkerScript component  = transform2.GetComponent <global::MarkerScript>();
                    component.objectScript = this.obj.GetComponent <global::RoadObjectScript>();
                    if (!component.OOCCDCOQCQ)
                    {
                        component.OOCCDCOQCQ = this.OOQQCODOCD.OOOCQDOCDC(transform2);
                    }
                    OQDQOQDOQO oqdqoqdoqo = new OQDQOQDOQO();
                    oqdqoqdoqo.position = transform2.position;
                    oqdqoqdoqo.num      = this.OOQQCODOCD.OOODOQDODQ.Count;
                    oqdqoqdoqo.object1  = transform2;
                    oqdqoqdoqo.object2  = component.surface;
                    oqdqoqdoqo.tension  = component.tension;
                    oqdqoqdoqo.ri       = component.ri;
                    if (oqdqoqdoqo.ri < 1f)
                    {
                        oqdqoqdoqo.ri = 1f;
                    }
                    oqdqoqdoqo.li = component.li;
                    if (oqdqoqdoqo.li < 1f)
                    {
                        oqdqoqdoqo.li = 1f;
                    }
                    oqdqoqdoqo.rt = component.rt;
                    oqdqoqdoqo.lt = component.lt;
                    oqdqoqdoqo.rs = component.rs;
                    if (oqdqoqdoqo.rs < 1f)
                    {
                        oqdqoqdoqo.rs = 1f;
                    }
                    oqdqoqdoqo.OQDOOODDQD = component.rs;
                    oqdqoqdoqo.ls         = component.ls;
                    if (oqdqoqdoqo.ls < 1f)
                    {
                        oqdqoqdoqo.ls = 1f;
                    }
                    oqdqoqdoqo.OOOCDQODDO     = component.ls;
                    oqdqoqdoqo.renderFlag     = component.bridgeObject;
                    oqdqoqdoqo.OCCOQCQDOD     = component.distHeights;
                    oqdqoqdoqo.newSegment     = component.newSegment;
                    oqdqoqdoqo.floorDepth     = component.floorDepth;
                    oqdqoqdoqo.waterLevel     = this.waterLevel;
                    oqdqoqdoqo.lockWaterLevel = component.lockWaterLevel;
                    oqdqoqdoqo.sharpCorner    = component.sharpCorner;
                    oqdqoqdoqo.OQCDCODODQ     = this.OOQQCODOCD;
                    component.markerNum       = num;
                    component.distance        = "-1";
                    component.OODDQCQQDD      = "-1";
                    this.OOQQCODOCD.OOODOQDODQ.Add(oqdqoqdoqo);
                    num++;
                }
            }
        }
        this.distance = "-1";
        this.OOQQCODOCD.ODQQQCQCOO = this.OODCCOODCC.roadWidth;
        this.OOQQCODOCD.ODOCODQOOC(geo, this.obj, this.OODCCOODCC.OOQDOOQQ, renderMode, camMode, this.objectType);
        if (this.OOQQCODOCD.leftVecs.Count > 0)
        {
            this.leftVecs  = this.OOQQCODOCD.leftVecs.ToArray();
            this.rightVecs = this.OOQQCODOCD.rightVecs.ToArray();
        }
    }
    // Token: 0x0600489B RID: 18587 RVA: 0x001127D4 File Offset: 0x001109D4
    public void OODDQODDCC(Vector3 pos)
    {
        if (!this.displayRoad)
        {
            this.displayRoad = true;
            this.OOQQCODOCD.OODDDCQCCQ(this.displayRoad, this.OODDDCQCOC);
        }
        pos.y += this.OODCCOODCC.raiseMarkers;
        if (this.forceY && this.ODOQDQOO != null)
        {
            float num = Vector3.Distance(pos, this.ODOQDQOO.transform.position);
            pos.y = this.ODOQDQOO.transform.position.y + this.yChange * (num / 100f);
        }
        else if (this.forceY && this.markers == 0)
        {
            this.lastY = pos.y;
        }
        GameObject gameObject;

        if (this.ODOQDQOO != null)
        {
            gameObject = (GameObject)Object.Instantiate(this.ODOQDQOO);
        }
        else
        {
            gameObject = (GameObject)Object.Instantiate(UnityEngine.Resources.Load("marker", typeof(GameObject)));
        }
        Transform transform = gameObject.transform;

        transform.position = pos;
        transform.parent   = this.OODDDCQCOC;
        this.markers++;
        string name;

        if (this.markers < 10)
        {
            name = "Marker000" + this.markers.ToString();
        }
        else if (this.markers < 100)
        {
            name = "Marker00" + this.markers.ToString();
        }
        else
        {
            name = "Marker0" + this.markers.ToString();
        }
        transform.gameObject.name = name;
        global::MarkerScript component = transform.GetComponent <global::MarkerScript>();

        component.OOCCDCOQCQ   = false;
        component.objectScript = this.obj.GetComponent <global::RoadObjectScript>();
        if (this.ODOQDQOO == null)
        {
            component.waterLevel = this.OODCCOODCC.waterLevel;
            component.floorDepth = this.OODCCOODCC.floorDepth;
            component.ri         = this.OODCCOODCC.indent;
            component.li         = this.OODCCOODCC.indent;
            component.rs         = this.OODCCOODCC.surrounding;
            component.ls         = this.OODCCOODCC.surrounding;
            component.tension    = 0.5f;
            if (this.objectType == 1)
            {
                pos.y -= this.waterLevel;
                transform.position = pos;
            }
        }
        if (this.objectType == 2 && component.surface != null)
        {
            component.surface.gameObject.SetActive(false);
        }
        this.ODOQDQOO = transform.gameObject;
        if (this.markers > 1)
        {
            this.OCOOCODDOC(this.OODCCOODCC.geoResolution, false, false);
            if (this.materialType == 0)
            {
                this.OOQQCODOCD.OOQOOCDQOD(this.materialType);
            }
        }
    }