public Vertex(Reader reader, bool useNormals) { x = reader.ReadSingle(); y = reader.ReadSingle(); z = reader.ReadSingle(); normal = new Normal(); if (useNormals) { normal = new Normal(reader); } }
public Replay(Reader reader) { Reader creader = reader.getCompressedStreamRaw(); reader.Close(); // Signature if (creader.ReadUInt32() != signature) { creader.Close(); throw new Exception("Invalid Replay v5 signature"); } gameVer = creader.ReadInt32(); isPacked = creader.readBool32(); bool isNotEmpty = creader.readBool32(); int frameCount = creader.ReadInt32(); startingFrame = creader.ReadInt32(); zoneID = creader.ReadInt32(); act = creader.ReadInt32(); characterID = creader.ReadInt32(); isPlusLayout = creader.readBool32(); oscillation = creader.ReadInt32(); int bufferSize = creader.ReadInt32(); float avgSize = creader.ReadSingle(); unknown = creader.ReadInt32(); frames.Clear(); for (int f = 0; f < frameCount; ++f) { ReplayEntry frame = new ReplayEntry(); frame.unpack(creader, isPacked); frames.Add(frame); } creader.Close(); }
public TexturePosition(Reader reader) { u = reader.ReadSingle(); v = reader.ReadSingle(); }
public Normal(Reader reader) { x = reader.ReadSingle(); y = reader.ReadSingle(); z = reader.ReadSingle(); }
public void read(Reader reader) { if (!reader.readBytes(4).SequenceEqual(signature)) { reader.Close(); throw new Exception("Invalid Model v5 signature"); } flags = reader.ReadByte(); faceVertexCount = reader.ReadByte(); if (faceVertexCount != 3 && faceVertexCount != 4) { throw new Exception("Detected Vertex Type wasn't Tris or Quads! RSDKv5 doesn't support other N-gons!"); } ushort vertexCount = reader.ReadUInt16(); ushort frameCount = reader.ReadUInt16(); textureUVs.Clear(); if (hasTextures) { for (int t = 0; t < vertexCount; ++t) { TextureUV uv = new TextureUV(); uv.u = reader.ReadSingle(); uv.v = reader.ReadSingle(); textureUVs.Add(uv); } } colours.Clear(); if (hasColours) { for (int c = 0; c < vertexCount; ++c) { Color colour = new Color(); colour.B = reader.ReadByte(); colour.G = reader.ReadByte(); colour.R = reader.ReadByte(); colour.A = reader.ReadByte(); colours.Add(colour); } } ushort indexCount = reader.ReadUInt16(); indices.Clear(); for (int i = 0; i < indexCount; ++i) { indices.Add(reader.ReadUInt16()); } frames.Clear(); for (int f = 0; f < frameCount; ++f) { Frame frame = new Frame(); for (int v = 0; v < vertexCount; ++v) { Vertex vert = new Vertex(); vert.x = reader.ReadSingle(); vert.y = reader.ReadSingle(); vert.z = reader.ReadSingle(); if (hasNormals) { vert.nx = reader.ReadSingle(); vert.ny = reader.ReadSingle(); vert.nz = reader.ReadSingle(); } frame.vertices.Add(vert); } frames.Add(frame); } }
public TexturePosition(Reader reader) { X = reader.ReadSingle(); Y = reader.ReadSingle(); }