示例#1
0
文件: BGI.cs 项目: ArtReeX/memoria
    public static Int64 BGI_charGetPitchAndRoll(Int32 uid, ref Int16 thetaX, ref Int16 thetaZ)
    {
        Actor activeActorByUID = PersistenSingleton <EventEngine> .Instance.getActiveActorByUID(uid);

        if (activeActorByUID != null)
        {
            Int16       index       = (Int16)activeActorByUID.fieldMapActorController.activeTri;
            BGI_TRI_DEF bgi_TRI_DEF = PersistenSingleton <EventEngine> .Instance.fieldmap.bgi.triList[(Int32)index];
            thetaX = (Int16)(-bgi_TRI_DEF.thetaZ);
            thetaZ = bgi_TRI_DEF.thetaX;
        }
        return(1L);
    }
示例#2
0
 public void ReadData(BinaryReader reader)
 {
     reader.BaseStream.Seek(4L, SeekOrigin.Begin);
     this.dataSize = reader.ReadUInt16();
     this.orgPos.ReadData(reader);
     this.curPos.ReadData(reader);
     this.minPos.ReadData(reader);
     this.maxPos.ReadData(reader);
     this.charPos.ReadData(reader);
     this.activeFloor  = reader.ReadInt16();
     this.activeTri    = reader.ReadInt16();
     this.triCount     = reader.ReadUInt16();
     this.triOffset    = reader.ReadUInt16();
     this.edgeCount    = reader.ReadUInt16();
     this.edgeOffset   = reader.ReadUInt16();
     this.anmCount     = reader.ReadUInt16();
     this.anmOffset    = reader.ReadUInt16();
     this.floorCount   = reader.ReadUInt16();
     this.floorOffset  = reader.ReadUInt16();
     this.normalCount  = reader.ReadUInt16();
     this.normalOffset = reader.ReadUInt16();
     this.vertexCount  = reader.ReadUInt16();
     this.vertexOffset = reader.ReadUInt16();
     reader.BaseStream.Seek((Int64)(4 + this.triOffset), SeekOrigin.Begin);
     for (UInt16 num = 0; num < this.triCount; num = (UInt16)(num + 1))
     {
         BGI_TRI_DEF bgi_TRI_DEF = new BGI_TRI_DEF();
         bgi_TRI_DEF.ReadData(reader);
         bgi_TRI_DEF.triIdx = (Int32)num;
         this.triList.Add(bgi_TRI_DEF);
     }
     reader.BaseStream.Seek((Int64)(4 + this.edgeOffset), SeekOrigin.Begin);
     for (UInt16 num2 = 0; num2 < this.edgeCount; num2 = (UInt16)(num2 + 1))
     {
         BGI_EDGE_DEF bgi_EDGE_DEF = new BGI_EDGE_DEF();
         bgi_EDGE_DEF.ReadData(reader);
         this.edgeList.Add(bgi_EDGE_DEF);
     }
     reader.BaseStream.Seek((Int64)(4 + this.anmOffset), SeekOrigin.Begin);
     for (UInt16 num3 = 0; num3 < this.anmCount; num3 = (UInt16)(num3 + 1))
     {
         BGI_ANM_DEF bgi_ANM_DEF = new BGI_ANM_DEF();
         bgi_ANM_DEF.ReadData(reader);
         this.anmList.Add(bgi_ANM_DEF);
     }
     for (Int32 i = 0; i < (Int32)this.anmCount; i++)
     {
         BGI_ANM_DEF bgi_ANM_DEF2 = this.anmList[i];
         bgi_ANM_DEF2.frameList = new List <BGI_FRAME_DEF>();
         reader.BaseStream.Seek((Int64)((UInt64)(4u + bgi_ANM_DEF2.frameOffset)), SeekOrigin.Begin);
         for (Int32 j = 0; j < (Int32)bgi_ANM_DEF2.frameCount; j++)
         {
             BGI_FRAME_DEF bgi_FRAME_DEF = new BGI_FRAME_DEF();
             bgi_FRAME_DEF.ReadData(reader);
             bgi_ANM_DEF2.frameList.Add(bgi_FRAME_DEF);
         }
     }
     for (Int32 k = 0; k < (Int32)this.anmCount; k++)
     {
         BGI_ANM_DEF bgi_ANM_DEF3 = this.anmList[k];
         for (Int32 l = 0; l < (Int32)bgi_ANM_DEF3.frameCount; l++)
         {
             BGI_FRAME_DEF bgi_FRAME_DEF2 = bgi_ANM_DEF3.frameList[l];
             reader.BaseStream.Seek((Int64)(4 + bgi_FRAME_DEF2.triNdxOffset), SeekOrigin.Begin);
             bgi_FRAME_DEF2.triIdxList = new List <Int32>();
             for (Int32 m = 0; m < (Int32)bgi_FRAME_DEF2.triCount; m++)
             {
                 Int32 item = reader.ReadInt32();
                 bgi_FRAME_DEF2.triIdxList.Add(item);
             }
         }
     }
     reader.BaseStream.Seek((Int64)(4 + this.floorOffset), SeekOrigin.Begin);
     for (UInt16 num4 = 0; num4 < this.floorCount; num4 = (UInt16)(num4 + 1))
     {
         BGI_FLOOR_DEF bgi_FLOOR_DEF = new BGI_FLOOR_DEF();
         bgi_FLOOR_DEF.ReadData(reader);
         this.floorList.Add(bgi_FLOOR_DEF);
     }
     reader.BaseStream.Seek((Int64)(4 + this.normalOffset), SeekOrigin.Begin);
     for (UInt16 num5 = 0; num5 < this.normalCount; num5 = (UInt16)(num5 + 1))
     {
         BGI_FVEC_DEF bgi_FVEC_DEF = new BGI_FVEC_DEF();
         bgi_FVEC_DEF.ReadData(reader);
         this.normalList.Add(bgi_FVEC_DEF);
     }
     reader.BaseStream.Seek((Int64)(4 + this.vertexOffset), SeekOrigin.Begin);
     for (UInt16 num6 = 0; num6 < this.vertexCount; num6 = (UInt16)(num6 + 1))
     {
         BGI_VEC_DEF bgi_VEC_DEF = new BGI_VEC_DEF();
         bgi_VEC_DEF.ReadData(reader);
         this.vertexList.Add(bgi_VEC_DEF);
     }
 }