public void WriteToFile(BinaryWriter Writer) { Writer.Write(Unk02); Writer.Write(Unk03); Writer.Write(Unk04); StringHelpers.WriteString16(Writer, PartName); Writer.Write(Unk05); StringHelpers.WriteString16(Writer, KynogonString); StringHelpers.WriteString16(Writer, Unk01); StringHelpers.WriteString16(Writer, ConstAIWorldPart); Writer.Write(Unk06); // Write AI Points Writer.Write(AIPoints.Count); foreach (IType AIPoint in AIPoints) { ushort TypeID = AIWorld_Factory.GetIDByType(AIPoint); Writer.Write(TypeID); AIPoint.Write(Writer); } // Write footer data StringHelpers.WriteString(Writer, OriginStream); Writer.Write(OriginStream.Length + 1); Writer.Write(Unk8); Writer.Write(Unk9); Writer.Write(Unk10); }
public override void Write(BinaryWriter Writer) { base.Write(Writer); Writer.Write(Unk01); Writer.Write(AIPoints.Length); foreach (IType AIPoint in AIPoints) { ushort TypeID = AIWorld_Factory.GetIDByType(AIPoint); Writer.Write(TypeID); AIPoint.Write(Writer); } }
public override void Read(BinaryReader Reader) { base.Read(Reader); Unk01 = Reader.ReadByte(); uint NumPoints = Reader.ReadUInt32(); AIPoints = new IType[NumPoints]; for (uint i = 0; i < NumPoints; i++) { ushort TypeID = Reader.ReadUInt16(); AIPoints[i] = AIWorld_Factory.ConstructByTypeID(OwnWorld, TypeID); AIPoints[i].Read(Reader); } }
public void ReadFromFile(BinaryReader reader) { Unk02 = reader.ReadInt32(); Unk03 = reader.ReadInt32(); Unk04 = reader.ReadInt16(); // NB: This could actually "Type2". PartName = StringHelpers.ReadString16(reader); Unk05 = reader.ReadInt32(); KynogonString = StringHelpers.ReadString16(reader); Unk01 = StringHelpers.ReadString16(reader); ConstAIWorldPart = StringHelpers.ReadString16(reader); // TODO: This could just be a bool such as - 'if not empty' Unk06 = reader.ReadByte(); if (Unk06 != 1) { throw new Exception("unk06 was not 1"); } // Read AIPoints int unkCount = reader.ReadInt32(); for (int i = 0; i < unkCount; i++) { ushort TypeID = reader.ReadUInt16(); IType Point = AIWorld_Factory.ConstructByTypeID(this, TypeID); Point.Read(reader); AIPoints.Add(Point); } // Read footer data OriginStream = StringHelpers.ReadString(reader); uint originFileSize = reader.ReadUInt32(); Unk8 = reader.ReadUInt32(); Unk9 = reader.ReadUInt32(); Unk10 = reader.ReadUInt32(); DebugWriteToFile(); }