Beispiel #1
0
 public static void Sequencer()
 {
     btlseq.wSeqCode = 0;
     SEQ_WORK[] seqWork = btlseq.seq_work_set.SeqWork;
     for (Int32 i = 0; i < 4; i++)
     {
         if (seqWork[i].CmdPtr != null)
         {
             SEQ_WORK seq_WORK = seqWork[i];
             seq_WORK.IncCnt = (Int16)(seq_WORK.IncCnt + 1);
             SEQ_WORK seq_WORK2 = seqWork[i];
             seq_WORK2.DecCnt = (Int16)(seq_WORK2.DecCnt - 1);
             SEQ_WORK seq_WORK3 = seqWork[i];
             seq_WORK3.AnmCnt = (Int16)(seq_WORK3.AnmCnt + 1);
             BTL_DATA regist = seqWork[i].CmdPtr.regist;
             Int32    num    = 1;
             using (btlseq.sequenceReader = new BinaryReader(new MemoryStream(btlseq.data)))
             {
                 while (num != 0)
                 {
                     btlseq.sequenceReader.BaseStream.Seek((Int64)(seqWork[i].CurPtr + 4), SeekOrigin.Begin);
                     btlseq.wSeqCode = (Int32)btlseq.sequenceReader.ReadByte();
                     if (btlseq.wSeqCode > (Int32)btlseq.gSeqProg.Length)
                     {
                         btlseq.wSeqCode = 0;
                     }
                     if (seqWork[i].Flags.WaitLoadVfx && SFX.GetTaskMonsteraStartOK() != 0)
                     {
                         seqWork[i].Flags.DoneLoadVfx = true;
                         seqWork[i].Flags.WaitLoadVfx = false;
                     }
                     if (seqWork[i].CurPtr != seqWork[i].OldPtr && btlseq.gSeqProg[btlseq.wSeqCode].Init != null)
                     {
                         btlseq.gSeqProg[btlseq.wSeqCode].Init(seqWork[i], regist);
                     }
                     seqWork[i].OldPtr = seqWork[i].CurPtr;
                     num = btlseq.gSeqProg[btlseq.wSeqCode].Exec(seqWork[i], regist);
                 }
             }
             if (seqWork[i].TurnTime != 0)
             {
                 Vector3 eulerAngles = regist.rot.eulerAngles;
                 eulerAngles.y = (Single)(seqWork[i].TurnOrg + seqWork[i].TurnRot * (Int16)seqWork[i].TurnCnt / (Int16)seqWork[i].TurnTime);
                 regist.rot    = Quaternion.Euler(eulerAngles);
                 SEQ_WORK seq_WORK4 = seqWork[i];
                 Byte     turnCnt;
                 seq_WORK4.TurnCnt = (Byte)((turnCnt = seq_WORK4.TurnCnt) + 1);
                 if (turnCnt >= seqWork[i].TurnTime)
                 {
                     seqWork[i].TurnTime = 0;
                 }
             }
             if (seqWork[i].SfxTime != 0)
             {
                 SEQ_WORK seq_WORK5 = seqWork[i];
                 if ((seq_WORK5.SfxTime = (Byte)(seq_WORK5.SfxTime - 1)) == 0)
                 {
                     btl_util.SetBattleSfx(regist, seqWork[i].SfxNum, seqWork[i].SfxVol);
                 }
             }
             if (seqWork[i].SVfxTime != 0)
             {
                 SEQ_WORK seq_WORK6 = seqWork[i];
                 if ((seq_WORK6.SVfxTime = (Byte)(seq_WORK6.SVfxTime - 1)) == 0)
                 {
                     Int16[] arg = new Int16[]
                     {
                         (Int16)seqWork[i].SVfxParam,
                         0,
                         0,
                         0
                     };
                     btl_vfx.SetBattleVfx(seqWork[i].CmdPtr, (UInt32)seqWork[i].SVfxNum, arg);
                 }
             }
             if (seqWork[i].FadeTotal != 0)
             {
                 SEQ_WORK seq_WORK7 = seqWork[i];
                 seq_WORK7.FadeStep = (Byte)(seq_WORK7.FadeStep - 1);
                 btl_util.SetEnemyFadeToPacket(regist, (Int32)(seqWork[i].FadeStep * 32 / seqWork[i].FadeTotal));
                 if (seqWork[i].FadeStep == 0)
                 {
                     seqWork[i].FadeTotal = 0;
                 }
             }
         }
     }
 }