public CANM(EndianBinaryReader er) { Signature = er.ReadString(Encoding.ASCII, 4); if (Signature != "CANM") throw new SignatureNotCorrectException(Signature, "CANM", er.BaseStream.Position); Revision = er.ReadUInt32(); NameOffset = (UInt32)er.BaseStream.Position + er.ReadUInt32(); TargetAnimationGroupNameOffset = (UInt32)er.BaseStream.Position + er.ReadUInt32(); LoopMode = er.ReadUInt32(); FrameSize = er.ReadSingle(); NrMemberAnimations = er.ReadUInt32(); MemberAnimationDictOffset = (UInt32)er.BaseStream.Position + er.ReadUInt32(); NrUserDataEntries = er.ReadUInt32(); UserDataOffset = er.ReadUInt32(); long curpos = er.BaseStream.Position; er.BaseStream.Position = NameOffset; Name = er.ReadStringNT(Encoding.ASCII); er.BaseStream.Position = TargetAnimationGroupNameOffset; TargetAnimationGroupName = er.ReadStringNT(Encoding.ASCII); er.BaseStream.Position = MemberAnimationDictOffset; MemberAnimationDictionary = new DICT(er); MemberAnimations = new MemberAnimationData[NrMemberAnimations]; for (int i = 0; i < NrMemberAnimations; i++) { er.BaseStream.Position = MemberAnimationDictionary[i].DataOffset; MemberAnimations[i] = new MemberAnimationData(er); } er.BaseStream.Position = curpos; }
public txt1(EndianBinaryReader er) : base(er) { long baseoffset = er.BaseStream.Position - 0x4C; NrCharacters = er.ReadUInt16(); NrCharacters2 = er.ReadUInt16(); MaterialId = er.ReadUInt16(); FontId = er.ReadUInt16(); PositionType = er.ReadByte(); TextAlignment = er.ReadByte(); TextFlags = er.ReadByte(); Padding = er.ReadByte(); StringOffset = er.ReadUInt32(); TopColor = er.ReadColor8(); BottomColor = er.ReadColor8(); FontSize = er.ReadVector2(); CharSize = er.ReadSingle(); LineSize = er.ReadSingle(); er.BaseStream.Position = baseoffset + StringOffset; Text = er.ReadStringNT(Encoding.Unicode); er.BaseStream.Position = baseoffset + SectionSize; }
public Single(EndianBinaryReader reader) { Address = reader.BaseStream.Position; Value = reader.ReadSingle(); Length = reader.BaseStream.Position - Length; }
public override void ToXml(XmlDocument yaml, XmlNode node, List<string> nodes, List<string> values, List<byte[]> data) { XmlAttribute attr = yaml.CreateAttribute("type"); attr.Value = "path"; node.Attributes.Append(attr); using (EndianBinaryReader rd = new EndianBinaryReader(new MemoryStream(data[Value]))) { while (rd.BaseStream.Position != rd.BaseStream.Length) { XmlElement point = yaml.CreateElement("point"); point.SetAttribute("x", rd.ReadSingle().ToString(CultureInfo.InvariantCulture) + "f"); point.SetAttribute("y", rd.ReadSingle().ToString(CultureInfo.InvariantCulture) + "f"); point.SetAttribute("z", rd.ReadSingle().ToString(CultureInfo.InvariantCulture) + "f"); point.SetAttribute("nx", rd.ReadSingle().ToString(CultureInfo.InvariantCulture) + "f"); point.SetAttribute("ny", rd.ReadSingle().ToString(CultureInfo.InvariantCulture) + "f"); point.SetAttribute("nz", rd.ReadSingle().ToString(CultureInfo.InvariantCulture) + "f"); point.SetAttribute("val", rd.ReadInt32().ToString(CultureInfo.InvariantCulture)); node.AppendChild(point); } rd.Close(); } }
public TexMatrix(EndianBinaryReader er) { Translation = er.ReadVector2(); Rotation = er.ReadSingle(); Scale = er.ReadVector2(); }
public AlphaCompare(EndianBinaryReader er) { AlphaFunc = (AlphaFunction)er.ReadUInt32(); Reference = er.ReadSingle(); }