Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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();
        }