コード例 #1
0
        public static OldFrame Load(byte[] data)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }
            if (data.Length < 56)
            {
                ErrorManager.SignalError("OldFrame: Data is too short");
            }
            int vertexcount = BitConv.FromInt32(data, 0);

            if (vertexcount < 0 || vertexcount > Chunk.Length / 6)
            {
                ErrorManager.SignalError("OldFrame: Vertex count is invalid");
            }
            if (data.Length < 56 + vertexcount * 6 + 2)
            {
                ErrorManager.SignalError("OldFrame: Data is too short");
            }
            int modeleid = BitConv.FromInt32(data, 4);
            int xoffset  = BitConv.FromInt32(data, 8);
            int yoffset  = BitConv.FromInt32(data, 12);
            int zoffset  = BitConv.FromInt32(data, 16);
            int x1       = BitConv.FromInt32(data, 20);
            int y1       = BitConv.FromInt32(data, 24);
            int z1       = BitConv.FromInt32(data, 28);
            int x2       = BitConv.FromInt32(data, 32);
            int y2       = BitConv.FromInt32(data, 36);
            int z2       = BitConv.FromInt32(data, 40);
            int xglobal  = BitConv.FromInt32(data, 44);
            int yglobal  = BitConv.FromInt32(data, 48);
            int zglobal  = BitConv.FromInt32(data, 52);

            OldFrameVertex[] vertices = new OldFrameVertex [vertexcount];
            for (int i = 0; i < vertexcount; i++)
            {
                byte[] vertexdata = new byte [6];
                Array.Copy(data, 56 + i * 6, vertexdata, 0, vertexdata.Length);
                vertices[i] = OldFrameVertex.Load(vertexdata);
            }
            short unknown = BitConv.FromInt16(data, 56 + vertexcount * 6);

            return(new OldFrame(modeleid, xoffset, yoffset, zoffset, x1, y1, z1, x2, y2, z2, xglobal, yglobal, zglobal, vertices, unknown));
        }
コード例 #2
0
ファイル: OldFrame.cs プロジェクト: CryZENx/CrashEdit
 public static OldFrame Load(byte[] data)
 {
     if (data == null)
         throw new ArgumentNullException("data");
     if (data.Length < 56)
     {
         ErrorManager.SignalError("OldFrame: Data is too short");
     }
     int vertexcount = BitConv.FromInt32(data,0);
     if (vertexcount < 0 || vertexcount > Chunk.Length / 6)
     {
         ErrorManager.SignalError("OldFrame: Vertex count is invalid");
     }
     if (data.Length < 56 + vertexcount * 6 + 2)
     {
         ErrorManager.SignalError("OldFrame: Data is too short");
     }
     int modeleid = BitConv.FromInt32(data,4);
     int xoffset = BitConv.FromInt32(data,8);
     int yoffset = BitConv.FromInt32(data,12);
     int zoffset = BitConv.FromInt32(data,16);
     int x1 = BitConv.FromInt32(data,20);
     int y1 = BitConv.FromInt32(data,24);
     int z1 = BitConv.FromInt32(data,28);
     int x2 = BitConv.FromInt32(data,32);
     int y2 = BitConv.FromInt32(data,36);
     int z2 = BitConv.FromInt32(data,40);
     int xglobal = BitConv.FromInt32(data,44);
     int yglobal = BitConv.FromInt32(data,48);
     int zglobal = BitConv.FromInt32(data,52);
     OldFrameVertex[] vertices = new OldFrameVertex [vertexcount];
     for (int i = 0;i < vertexcount;i++)
     {
         byte[] vertexdata = new byte [6];
         Array.Copy(data,56 + i * 6,vertexdata,0,vertexdata.Length);
         vertices[i] = OldFrameVertex.Load(vertexdata);
     }
     short unknown = BitConv.FromInt16(data,56 + vertexcount * 6);
     return new OldFrame(modeleid,xoffset,yoffset,zoffset,x1,y1,z1,x2,y2,z2,xglobal,yglobal,zglobal,vertices,unknown);
 }
コード例 #3
0
 private void RenderVertex(OldFrameVertex vertex)
 {
     GL.Vertex3(vertex.X,vertex.Y,vertex.Z);
 }