public CDescriptionDef(string pActionType, string pName, string pstart, string pduration, string pDescText, DescPos pPos, bool pSaBanHide, string psoundname, bool loop)
 {
     this.Name       = pName;
     this.ActionType = pActionType;
     this.start      = pstart;
     this.duration   = pduration;
     this.DescText   = pDescText;
     this.Pos        = pPos;
     this.SaBanHide  = pSaBanHide;
     this.SoundName  = psoundname;
     this.SoundLoop  = loop;
 }
 public CDescription(CThucHanh pThucHanh, string pName, int start, int pduration, string pDescText, DescPos pPos, bool pSaBanHide, int pisound, bool loop) : base(pThucHanh)
 {
     this.Name           = pName;
     this.DescText       = pDescText;
     this.Pos            = pPos;
     this.SaBanHide      = pSaBanHide;
     this.StartTickCount = start;
     this.duration       = pduration;
     this.StopTickCount  = this.StartTickCount + this.duration;
     this.isound         = pisound;
     this.soundloop      = loop;
 }
Esempio n. 3
0
        private static List <CActDef> XML2ActionDefs(XmlTextReader rr)
        {
            List <CActDef> list        = new List <CActDef>();
            List <Vector3> list2       = new List <Vector3>();
            Vector3        vector      = new Vector3(0f, 0f, 0f);
            Vector3        pFromPos    = new Vector3(0f, 0f, 0f);
            string         text        = "";
            string         text2       = "Blink";
            string         texfile     = "";
            string         text3       = "";
            string         psoundname  = "";
            string         pstart      = "0";
            int            prepeat     = 0;
            int            psteps      = 10;
            float          ppartial    = 1f;
            float          pCenterX    = 0.5f;
            float          pCenterY    = 0.5f;
            Vector3        pcameraPos  = new Vector3(0f, 0f, 0f);
            float          pangleZ     = 0f;
            float          pangleX     = 0f;
            string         pCornerText = "";
            string         pDescText   = "";
            DescPos        pPos        = DescPos.Duoi;
            bool           pSaBanHide  = false;
            float          num         = -45f;
            float          pspeed      = 0f;
            float          valueX      = 0f;
            float          valueY      = 0f;
            float          valueZ      = 0f;
            int            num2        = 0;
            string         text4       = "";
            string         pduration   = "0";
            float          num3        = 0f;
            float          num4        = 0f;
            float          pshiftZ     = 0f;
            bool           pstophide   = false;
            float          pstopangleZ = 0f;

            while (rr.Read())
            {
                XmlNodeType nodeType    = rr.NodeType;
                XmlNodeType xmlNodeType = nodeType;
                string      name2;
                if (xmlNodeType != XmlNodeType.Element)
                {
                    if (xmlNodeType == XmlNodeType.EndElement)
                    {
                        string name;
                        if ((name = rr.Name) != null)
                        {
                            if (!(name == "Target"))
                            {
                                if (!(name == "From"))
                                {
                                    if (!(name == "Targets"))
                                    {
                                        if (name == "Action")
                                        {
                                            bool   loop = false;
                                            string key;
                                            switch (key = text2)
                                            {
                                            case "Blink":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item = new CBlinkDef(text2, text, text3, pstart, pduration, pspeed, psoundname, loop);
                                                list.Add(item);
                                                break;
                                            }

                                            case "Explode":
                                            {
                                                if (num3 == 0f)
                                                {
                                                    num3 = 3f;
                                                }
                                                if (num4 == 0f)
                                                {
                                                    num4 = 3f;
                                                }
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item;
                                                if (text3.Length == 0)
                                                {
                                                    item = new CExplodeObjDef(text2, text, texfile, num3, num4, pshiftZ, pstart, pduration, pspeed, vector, psoundname, loop);
                                                }
                                                else
                                                {
                                                    item = new CExplodeObjDef(text2, text, texfile, num3, num4, pshiftZ, pstart, pduration, pspeed, text3, psoundname, loop);
                                                }
                                                list.Add(item);
                                                break;
                                            }

                                            case "ExplodeDcl":
                                            {
                                                if (num3 == 0f)
                                                {
                                                    num3 = 3f;
                                                }
                                                if (num4 == 0f)
                                                {
                                                    num4 = 3f;
                                                }
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item = new CExplodeDclDef(text2, text, texfile, num3, num4, pshiftZ, pduration, pspeed, psoundname, loop);
                                                list.Add(item);
                                                break;
                                            }

                                            case "Bombard":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                if (num3 == 0f)
                                                {
                                                    num3 = 0.5f;
                                                }
                                                if (num4 == 0f)
                                                {
                                                    num4 = 1.5f;
                                                }
                                                CActDef item;
                                                if (text3.Length == 0)
                                                {
                                                    item = new CBombardFromDef(text2, text, texfile, num3, num4, pstart, pduration, pspeed, num, pFromPos, vector, psoundname, loop, text4, prepeat);
                                                }
                                                else
                                                {
                                                    item = new CBombardFromDef(text2, text, texfile, num3, num4, pstart, pduration, pspeed, num, text3, vector, psoundname, loop, text4, prepeat);
                                                }
                                                list.Add(item);
                                                break;
                                            }

                                            case "Shoot":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                if (num3 == 0f)
                                                {
                                                    num3 = 0.5f;
                                                }
                                                if (num4 == 0f)
                                                {
                                                    num4 = 1.5f;
                                                }
                                                CActDef item;
                                                if (text3.Length == 0)
                                                {
                                                    item = new CShootFromDef(text2, text, texfile, num3, num4, pstart, pduration, pspeed, pFromPos, vector, psoundname, loop, text4, prepeat);
                                                }
                                                else
                                                {
                                                    item = new CShootFromDef(text2, text, texfile, num3, num4, pstart, pduration, pspeed, text3, vector, psoundname, loop, text4, prepeat);
                                                }
                                                list.Add(item);
                                                break;
                                            }

                                            case "Hide":
                                            case "Unhide":
                                            case "DisappearA":
                                            case "DisappearUp":
                                            case "DisappearDown":
                                            case "DisappearLeft":
                                            case "Disappear":
                                            case "AppearA":
                                            case "AppearUp":
                                            case "AppearDown":
                                            case "AppearLeft":
                                            case "Appear":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item = new CAppearDef(text2, text, text3, pstart, pduration, psteps, ppartial, pstophide, psoundname, loop, prepeat);
                                                list.Add(item);
                                                break;
                                            }

                                            case "Spin":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item = new CSpinDef(text2, text, text3, pstart, pduration, num, psoundname, loop);
                                                list.Add(item);
                                                break;
                                            }

                                            case "SpinTo":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item = new CSpinToDef(text2, text, text3, pstart, pduration, vector, psoundname, loop);
                                                list.Add(item);
                                                break;
                                            }

                                            case "Fly":
                                            case "Move":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item = new CMoveObjDef(text2, text, text3, pstart, pduration, pstophide, pstopangleZ, list2, psoundname, loop);
                                                list.Add(item);
                                                break;
                                            }

                                            case "FocusAt":
                                            {
                                                CActDef item = new CFocusAtDef(text2, text, pstart, pduration, pCenterX, pCenterY, pcameraPos, pangleZ, pangleX);
                                                list.Add(item);
                                                break;
                                            }

                                            case "CornerTitle":
                                            {
                                                if (num2 == 1)
                                                {
                                                }
                                                CActDef item = new CCornerTitleDef(text2, text, pstart, pduration, pCornerText);
                                                list.Add(item);
                                                break;
                                            }

                                            case "Description":
                                            {
                                                if (num2 == 1)
                                                {
                                                    loop = true;
                                                }
                                                CActDef item = new CDescriptionDef(text2, text, pstart, pduration, pDescText, pPos, pSaBanHide, psoundname, loop);
                                                list.Add(item);
                                                break;
                                            }

                                            case "Comment":
                                            {
                                                CActDef item = new CCommentDef(text);
                                                list.Add(item);
                                                break;
                                            }
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    pFromPos = new Vector3(valueX, valueY, valueZ);
                                }
                            }
                            else
                            {
                                vector = new Vector3(valueX, valueY, valueZ);
                                list2.Add(vector);
                            }
                        }
                    }
                }
                else if ((name2 = rr.Name) != null && !(name2 == "Actions"))
                {
                    if (!(name2 == "Action"))
                    {
                        if (!(name2 == "Targets"))
                        {
                            if (!(name2 == "Target"))
                            {
                                if (name2 == "From")
                                {
                                    if (rr.AttributeCount > 0)
                                    {
                                        while (rr.MoveToNextAttribute())
                                        {
                                            string name3;
                                            if ((name3 = rr.Name) != null)
                                            {
                                                if (!(name3 == "X"))
                                                {
                                                    if (!(name3 == "Y"))
                                                    {
                                                        if (name3 == "Z")
                                                        {
                                                            valueZ = CHelper.myToSingle(rr.Value);
                                                        }
                                                    }
                                                    else
                                                    {
                                                        valueY = CHelper.myToSingle(rr.Value);
                                                    }
                                                }
                                                else
                                                {
                                                    valueX = CHelper.myToSingle(rr.Value);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            else if (rr.AttributeCount > 0)
                            {
                                while (rr.MoveToNextAttribute())
                                {
                                    string name4;
                                    if ((name4 = rr.Name) != null)
                                    {
                                        if (!(name4 == "X"))
                                        {
                                            if (!(name4 == "Y"))
                                            {
                                                if (name4 == "Z")
                                                {
                                                    valueZ = CHelper.myToSingle(rr.Value);
                                                }
                                            }
                                            else
                                            {
                                                valueY = CHelper.myToSingle(rr.Value);
                                            }
                                        }
                                        else
                                        {
                                            valueX = CHelper.myToSingle(rr.Value);
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            list2.Clear();
                        }
                    }
                    else
                    {
                        text        = "";
                        num2        = 0;
                        text3       = "";
                        num3        = 0f;
                        num4        = 0f;
                        pduration   = "0";
                        psoundname  = "";
                        psteps      = 10;
                        ppartial    = 1f;
                        prepeat     = 1;
                        num         = -45f;
                        pCenterX    = 0.5f;
                        pCenterY    = 0.5f;
                        pcameraPos  = new Vector3(0f, 0f, 0f);
                        pangleZ     = 0f;
                        pangleX     = 0f;
                        pCornerText = "";
                        pDescText   = "";
                        pPos        = DescPos.Duoi;
                        pSaBanHide  = false;
                        pshiftZ     = 0f;
                        pstophide   = false;
                        pstopangleZ = 0f;
                        text4       = "";
                        if (rr.AttributeCount > 0)
                        {
                            while (rr.MoveToNextAttribute())
                            {
                                string name5;
                                switch (name5 = rr.Name)
                                {
                                case "ID":
                                    text = rr.Value;
                                    break;

                                case "Type":
                                    text2 = rr.Value;
                                    break;

                                case "ImageFile":
                                    texfile = rr.Value;
                                    break;

                                case "Obj":
                                    Convert.ToInt32(rr.Value);
                                    break;

                                case "ObjName":
                                    text3 = rr.Value;
                                    break;

                                case "Start":
                                    pstart = rr.Value;
                                    break;

                                case "Repeat":
                                    prepeat = Convert.ToInt32(rr.Value);
                                    break;

                                case "Duration":
                                    pduration = rr.Value;
                                    break;

                                case "Delay":
                                    CHelper.myToSingle(rr.Value);
                                    break;

                                case "Steps":
                                    psteps = Convert.ToInt32(rr.Value);
                                    break;

                                case "Speed":
                                    pspeed = CHelper.myToSingle(rr.Value);
                                    break;

                                case "Partial":
                                    ppartial = CHelper.myToSingle(rr.Value);
                                    break;

                                case "CanAjust":
                                    Convert.ToBoolean(rr.Value);
                                    break;

                                case "dAngle":
                                    num = CHelper.myToSingle(rr.Value);
                                    break;

                                case "CenterX":
                                    pCenterX = CHelper.myToSingle(rr.Value);
                                    break;

                                case "CenterY":
                                    pCenterY = CHelper.myToSingle(rr.Value);
                                    break;

                                case "cameraPosX":
                                    pcameraPos.X = CHelper.myToSingle(rr.Value);
                                    break;

                                case "cameraPosY":
                                    pcameraPos.Y = CHelper.myToSingle(rr.Value);
                                    break;

                                case "cameraPosZ":
                                    pcameraPos.Z = CHelper.myToSingle(rr.Value);
                                    break;

                                case "angleZ":
                                    pangleZ = CHelper.myToSingle(rr.Value);
                                    break;

                                case "angleX":
                                    pangleX = CHelper.myToSingle(rr.Value);
                                    break;

                                case "CornerText":
                                    pCornerText = rr.Value;
                                    break;

                                case "DescText":
                                    pDescText = rr.Value;
                                    break;

                                case "Pos":
                                    pPos = ((rr.Value == "Tren") ? DescPos.Tren : ((rr.Value == "Giua") ? DescPos.Giua : DescPos.Duoi));
                                    break;

                                case "SaBanHide":
                                    pSaBanHide = Convert.ToBoolean(rr.Value);
                                    break;

                                case "GravityZ":
                                    CHelper.myToSingle(rr.Value);
                                    break;

                                case "Degree":
                                    CHelper.myToSingle(rr.Value);
                                    break;

                                case "SoundName":
                                    psoundname = rr.Value;
                                    break;

                                case "iSound":
                                    Convert.ToInt32(rr.Value);
                                    break;

                                case "SoundLoop":
                                    num2 = Convert.ToInt32(rr.Value);
                                    break;

                                case "Width":
                                    num3 = CHelper.myToSingle(rr.Value);
                                    break;

                                case "Height":
                                    num4 = CHelper.myToSingle(rr.Value);
                                    break;

                                case "ShiftZ":
                                    pshiftZ = CHelper.myToSingle(rr.Value);
                                    break;

                                case "Hide":
                                    pstophide = Convert.ToBoolean(rr.Value);
                                    break;

                                case "StopAngleZ":
                                    pstopangleZ = CHelper.myToSingle(rr.Value);
                                    break;

                                case "ExplID":
                                    text4 = rr.Value;
                                    break;
                                }
                            }
                        }
                    }
                }
            }
            return(list);
        }