public DrawElement(FileReader reader, BIN_Parser header) { MaterialIndex = reader.ReadInt16(); ShapeBatchIndex = reader.ReadInt16(); Material = header.ReadSection <Material>(reader, MaterialIndex); Batch = header.ReadSection <ShapeBatch>(reader, ShapeBatchIndex); }
public SceneGraphNode(FileReader reader, int index, BIN_Parser header) { Index = index; ParentIndex = reader.ReadInt16(); FirstChildIndex = reader.ReadInt16(); NextSiblingIndex = reader.ReadInt16(); PrevSiblingIndex = reader.ReadInt16(); reader.ReadByte(); RenderFlags = (GraphObjectRenderFlags)reader.ReadByte(); reader.ReadInt16(); Scale = reader.ReadVec3(); Rotate = reader.ReadVec3(); Translate = reader.ReadVec3(); BoundingMin = reader.ReadVec3(); BoundingMax = reader.ReadVec3(); Unknown = reader.ReadSingle(); ushort drawElementCount = reader.ReadUInt16(); reader.ReadUInt16(); //padding uint drawElementOffset = reader.ReadUInt32(); if (drawElementCount > 0) { for (int i = 0; i < drawElementCount; i++) { reader.SeekBegin(header.SceneGraphOffset + drawElementOffset + (i * 4)); DrawnParts.Add(new DrawElement(reader, header)); } } if (FirstChildIndex >= 0) { AddChild(header.ReadSection <SceneGraphNode>(reader, FirstChildIndex)); } if (NextSiblingIndex >= 0) { if (Parent != null) { Parent.AddChild(header.ReadSection <SceneGraphNode>(reader, NextSiblingIndex)); } else { AddChild(header.ReadSection <SceneGraphNode>(reader, NextSiblingIndex)); } } }
public Sampler(FileReader reader, BIN_Parser header) { TextureIndex = reader.ReadInt16(); PaletteIndex = reader.ReadInt16(); WrapS = reader.ReadByte(); WrapT = reader.ReadByte(); Unknown = reader.ReadUInt16(); Texture = header.ReadSection <Texture>(reader, TextureIndex); }
public Material(FileReader reader, BIN_Parser header) { DynamicLighting = reader.ReadByte(); Unknown2 = reader.ReadByte(); Unknown3 = reader.ReadByte(); AmbientColor = reader.ReadColor8RGBA(); reader.ReadByte(); //padding SamplerIndices = reader.ReadInt16s(8); Unknown4 = reader.ReadInt16(); Unknown5 = reader.ReadInt16(); Padding = reader.ReadBytes(12); for (int i = 0; i < 8; i++) { if (SamplerIndices[i] != -1) { Samplers.Add(header.ReadSection <Sampler>(reader, SamplerIndices[i])); } } }