public bool ReadCamera(XmlReader reader, ref CutScene_Camera camera)
    {
        bool flag = true;

        try
        {
            while (flag)
            {
                if (reader.NodeType == XmlNodeType.Element && !reader.IsEmptyElement)
                {
                    if (reader.Name.CompareTo("localPosition") == 0)
                    {
                        this.ReadLocalPosition(reader, ref camera);
                    }
                    else if (reader.Name.CompareTo("localRotation") == 0)
                    {
                        this.ReadLocalRotation(reader, ref camera);
                    }
                }
                else if (reader.NodeType == XmlNodeType.EndElement)
                {
                    reader.Read();
                    break;
                }
                flag = reader.Read();
            }
        }
        catch (Exception ex)
        {
            TsLog.LogError(ex.Message + " " + ex.StackTrace, new object[0]);
            return(false);
        }
        return(true);
    }
    public void ReadXML(string path, object kParmObj)
    {
        string fileString = new TsDataReader
        {
            UseMD5 = true
        }.GetFileString(path);
        MemoryStream stream    = new MemoryStream(NrXmlSerializer.StringToUTF8ByteArray(fileString));
        XmlReader    xmlReader = XmlReader.Create(stream);

        if (xmlReader == null)
        {
            return;
        }
        try
        {
            while (xmlReader.Read())
            {
                if (xmlReader.NodeType == XmlNodeType.Element && !xmlReader.IsEmptyElement)
                {
                    if (xmlReader.Name == typeof(Camera).Name)
                    {
                        CutScene_Camera cutScene_Camera = new CutScene_Camera();
                        cutScene_Camera.CameraName = xmlReader.GetAttribute("Name");
                        int fov = 35;
                        if (int.TryParse(xmlReader.GetAttribute("FOV"), out fov))
                        {
                            cutScene_Camera._fov = fov;
                        }
                        else
                        {
                            cutScene_Camera._fov = 35;
                            Debug.LogError("Cannot find XML Setting : FOV Default Settings -> 35");
                        }
                        this.ReadCamera(xmlReader, ref cutScene_Camera);
                        this._listCamera.Add(cutScene_Camera);
                    }
                    else if (xmlReader.Name == "USequenceData")
                    {
                        string attribute = xmlReader.GetAttribute("Duration");
                        this.Duration = float.Parse(attribute);
                    }
                }
            }
            this.SortCameraTimeLine();
        }
        catch (Exception ex)
        {
            TsLog.LogError(ex.Message + " " + ex.StackTrace, new object[0]);
            return;
        }
        if (this.nReservationCharKind != 0 || this.eReservationAni == eCharAnimationType.None)
        {
        }
        this.bLoadComplete = true;
    }
    public bool ReadLocalRotation(XmlReader reader, ref CutScene_Camera camera)
    {
        string s    = string.Empty;
        bool   flag = true;

        try
        {
            while (flag)
            {
                if (reader.NodeType == XmlNodeType.Element && !reader.IsEmptyElement && reader.Name.CompareTo("localRotation") == 0)
                {
                    s = reader.GetAttribute("x");
                    camera._StartRotation.x = float.Parse(s);
                    s = reader.GetAttribute("y");
                    camera._StartRotation.y = float.Parse(s);
                    s = reader.GetAttribute("z");
                    camera._StartRotation.z = float.Parse(s);
                    s = reader.GetAttribute("w");
                    camera._StartRotation.w = float.Parse(s);
                    this.ReadIntermalCurve(reader, ref camera._curveRotation[0]);
                    this.ReadIntermalCurve(reader, ref camera._curveRotation[1]);
                    this.ReadIntermalCurve(reader, ref camera._curveRotation[2]);
                    this.ReadIntermalCurve(reader, ref camera._curveRotation[3]);
                    int length = camera._curvePosition[0].length;
                    camera._fDuration = camera._curvePosition[0][length - 1].time;
                }
                if (reader.NodeType == XmlNodeType.EndElement)
                {
                    break;
                }
                reader.Read();
            }
        }
        catch (Exception ex)
        {
            TsLog.LogError(ex.Message + " " + ex.StackTrace, new object[0]);
            return(false);
        }
        return(true);
    }
    public void ReadXML(IDownloadedItem wItem, object kParmObj)
    {
        XmlReader xmlReader = null;

        if (wItem.canAccessString)
        {
            MemoryStream stream = new MemoryStream(NrXmlSerializer.StringToUTF8ByteArray(wItem.safeString));
            xmlReader = XmlReader.Create(stream);
        }
        else if (wItem.canAccessAssetBundle)
        {
            GameObject gameObject = wItem.mainAsset as GameObject;
            if (null != gameObject)
            {
                TsGameDataAdapter component = gameObject.GetComponent <TsGameDataAdapter>();
                TsGameData        gameData  = component.GameData;
                MemoryStream      stream2   = new MemoryStream(NrXmlSerializer.StringToUTF8ByteArray(gameData.serializeGameDatas[0]));
                xmlReader = XmlReader.Create(stream2);
            }
            wItem.unloadImmediate = true;
        }
        if (xmlReader == null)
        {
            return;
        }
        try
        {
            while (xmlReader.Read())
            {
                if (xmlReader.NodeType == XmlNodeType.Element && !xmlReader.IsEmptyElement)
                {
                    if (xmlReader.Name == typeof(Camera).Name)
                    {
                        CutScene_Camera cutScene_Camera = new CutScene_Camera();
                        cutScene_Camera.CameraName = xmlReader.GetAttribute("Name");
                        int fov = 35;
                        if (int.TryParse(xmlReader.GetAttribute("FOV"), out fov))
                        {
                            cutScene_Camera._fov = fov;
                        }
                        else
                        {
                            cutScene_Camera._fov = 35;
                            Debug.LogError("Cannot find XML Setting : FOV Default Settings -> 35");
                        }
                        this.ReadCamera(xmlReader, ref cutScene_Camera);
                        this._listCamera.Add(cutScene_Camera);
                    }
                    else if (xmlReader.Name == "USequenceData")
                    {
                        string attribute = xmlReader.GetAttribute("Duration");
                        this.Duration = float.Parse(attribute);
                    }
                }
            }
            this.SortCameraTimeLine();
        }
        catch (Exception ex)
        {
            TsLog.LogError(ex.Message + " " + ex.StackTrace, new object[0]);
            return;
        }
        if (this.nReservationCharKind == 0 && this.eReservationAni == eCharAnimationType.None)
        {
            this.StartCutScene();
        }
        this.bLoadComplete = true;
    }
 private int CompareToFileTime(CutScene_Camera left, CutScene_Camera right)
 {
     return(right._fFireTime.CompareTo(left._fFireTime));
 }