Example #1
0
 public void GenerateSPS()
 {
     if (!this._isReady)
     {
         return;
     }
     for (Int32 i = 0; i < this._spsList.Count; i++)
     {
         FieldSPS fieldSPS = this._spsList[i];
         if (fieldSPS.spsBin != null && (fieldSPS.attr & 1) != 0)
         {
             if (fieldSPS.charTran != (UnityEngine.Object)null && fieldSPS.boneTran != (UnityEngine.Object)null)
             {
                 FieldMapActor component = fieldSPS.charTran.GetComponent <FieldMapActor>();
                 if (component != (UnityEngine.Object)null)
                 {
                     component.UpdateGeoAttach();
                 }
                 fieldSPS.pos = fieldSPS.boneTran.position + fieldSPS.posOffset;
             }
             fieldSPS.GenerateSPS();
             fieldSPS.lastFrame            = fieldSPS.curFrame;
             fieldSPS.meshRenderer.enabled = true;
         }
     }
 }
Example #2
0
 public void Init(FieldMap fieldMap)
 {
     this.rot         = new Vector3(0f, 0f, 0f);
     this._isReady    = false;
     this._spsList    = new List <FieldSPS>();
     this._spsBinDict = new Dictionary <Int32, KeyValuePair <Int32, Byte[]> >();
     this._fieldMap   = fieldMap;
     for (Int32 i = 0; i < 16; i++)
     {
         GameObject gameObject = new GameObject("SPS_" + i.ToString("D4"));
         gameObject.transform.parent        = base.transform;
         gameObject.transform.localScale    = Vector3.one;
         gameObject.transform.localPosition = Vector3.zero;
         MeshRenderer meshRenderer = gameObject.AddComponent <MeshRenderer>();
         MeshFilter   meshFilter   = gameObject.AddComponent <MeshFilter>();
         FieldSPS     fieldSPS     = gameObject.AddComponent <FieldSPS>();
         fieldSPS.Init();
         fieldSPS.fieldMap     = fieldMap;
         fieldSPS.spsIndex     = i;
         fieldSPS.spsTransform = gameObject.transform;
         fieldSPS.meshRenderer = meshRenderer;
         fieldSPS.meshFilter   = meshFilter;
         this._spsList.Add(fieldSPS);
         FieldSPSActor fieldSPSActor = gameObject.AddComponent <FieldSPSActor>();
         fieldSPSActor.sps = fieldSPS;
         fieldSPS.spsActor = fieldSPSActor;
     }
     this.MapName = FF9StateSystem.Field.SceneName;
     FieldMapInfo.fieldmapSPSExtraOffset.SetSPSOffset(this.MapName, this._spsList);
     this._isReady = this._loadSPSTexture();
 }
Example #3
0
 public void Service()
 {
     if (!this._isReady)
     {
         return;
     }
     for (Int32 i = 0; i < this._spsList.Count; i++)
     {
         FieldSPS fieldSPS = this._spsList[i];
         if (fieldSPS.spsBin != null && (fieldSPS.attr & 1) != 0)
         {
             if (fieldSPS.lastFrame != -1)
             {
                 fieldSPS.lastFrame = fieldSPS.curFrame;
                 fieldSPS.curFrame += fieldSPS.frameRate;
                 if (fieldSPS.curFrame >= fieldSPS.frameCount)
                 {
                     fieldSPS.curFrame = 0;
                 }
                 else if (fieldSPS.curFrame < 0)
                 {
                     fieldSPS.curFrame = (fieldSPS.frameCount >> 4) - 1 << 4;
                 }
             }
         }
     }
 }
Example #4
0
    public void FF9FieldSPSSetObjParm(Int32 ObjNo, Int32 ParmType, Int32 Arg0, Int32 Arg1, Int32 Arg2)
    {
        FieldSPS fieldSPS = this._spsList[ObjNo];

        if (ParmType == 130)
        {
            if (Arg0 != -1)
            {
                if (this._loadSPSBin(Arg0))
                {
                    fieldSPS.spsBin     = this._spsBinDict[Arg0].Value;
                    fieldSPS.curFrame   = 0;
                    fieldSPS.lastFrame  = -1;
                    fieldSPS.frameCount = this._spsBinDict[Arg0].Key;
                }
                fieldSPS.refNo = Arg0;
                if (FF9StateSystem.Common.FF9.fldMapNo == 2553 && (fieldSPS.refNo == 464 || fieldSPS.refNo == 467 || fieldSPS.refNo == 506 || fieldSPS.refNo == 510))
                {
                    fieldSPS.spsBin = null;
                }
            }
            else
            {
                if ((FF9StateSystem.Common.FF9.fldMapNo == 911 || FF9StateSystem.Common.FF9.fldMapNo == 1911) && (fieldSPS.refNo == 33 || fieldSPS.refNo == 34))
                {
                    fieldSPS.pos    = Vector3.zero;
                    fieldSPS.scale  = 4096;
                    fieldSPS.rot    = Vector3.zero;
                    fieldSPS.rotArg = Vector3.zero;
                }
                fieldSPS.spsBin = null;
                fieldSPS.meshRenderer.enabled = false;
                fieldSPS.charTran             = (Transform)null;
                fieldSPS.boneTran             = (Transform)null;
            }
        }
        else if (ParmType == 131)
        {
            if (Arg1 != 0)
            {
                FieldSPS fieldSPS2 = fieldSPS;
                fieldSPS2.attr = (Byte)(fieldSPS2.attr | (Byte)Arg0);
            }
            else
            {
                FieldSPS fieldSPS3 = fieldSPS;
                fieldSPS3.attr = (Byte)(fieldSPS3.attr & (Byte)(~(Byte)Arg0));
            }
            if ((fieldSPS.attr & 1) == 0)
            {
                fieldSPS.meshRenderer.enabled = false;
            }
            else if (FF9StateSystem.Common.FF9.fldMapNo == 2928 || FF9StateSystem.Common.FF9.fldMapNo == 1206 || FF9StateSystem.Common.FF9.fldMapNo == 1223)
            {
                if (fieldSPS.spsBin != null)
                {
                    fieldSPS.meshRenderer.enabled = true;
                }
            }
            else
            {
                fieldSPS.meshRenderer.enabled = true;
            }
        }
        else if (ParmType == 135)
        {
            if (FF9StateSystem.Common.FF9.fldMapNo == 911 || FF9StateSystem.Common.FF9.fldMapNo == 1911)
            {
                if (fieldSPS.spsBin != null)
                {
                    fieldSPS.pos = new Vector3((Single)Arg0, (Single)(Arg1 * -1), (Single)Arg2);
                }
            }
            else
            {
                fieldSPS.pos = new Vector3((Single)Arg0, (Single)(Arg1 * -1), (Single)Arg2);
            }
        }
        else if (ParmType == 140)
        {
            fieldSPS.rot = new Vector3((Single)Arg0 / 4096f * 360f, (Single)Arg1 / 4096f * 360f, (Single)Arg2 / 4096f * 360f);
        }
        else if (ParmType == 145)
        {
            fieldSPS.scale = Arg0;
        }
        else if (ParmType == 150)
        {
            Obj objUID = PersistenSingleton <EventEngine> .Instance.GetObjUID(Arg0);

            fieldSPS.charNo   = Arg0;
            fieldSPS.boneNo   = Arg1;
            fieldSPS.charTran = objUID.go.transform;
            fieldSPS.boneTran = objUID.go.transform.GetChildByName("bone" + fieldSPS.boneNo.ToString("D3"));
        }
        else if (ParmType == 155)
        {
            fieldSPS.fade = (Byte)Arg0;
        }
        else if (ParmType == 156)
        {
            fieldSPS.arate = (Byte)Arg0;
        }
        else if (ParmType == 160)
        {
            fieldSPS.frameRate = Arg0;
        }
        else if (ParmType == 161)
        {
            fieldSPS.curFrame = Arg0 << 4;
        }
        else if (ParmType == 165)
        {
            fieldSPS.posOffset = new Vector3((Single)Arg0, (Single)(-(Single)Arg1), (Single)Arg2);
        }
        else if (ParmType == 170)
        {
            fieldSPS.depthOffset = Arg0;
        }
    }