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)); }
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); }
private void RenderVertex(OldFrameVertex vertex) { GL.Vertex3(vertex.X,vertex.Y,vertex.Z); }