Example #1
0
        private void WriteMissionBlock(MapMissionBlock block)
        {
            _binWriter.Write(Encoding.ASCII.GetBytes(block.Name));
            //For some reason this block has to have length overlapping with start of next block
            _binWriter.Write((UInt32)48);

            _binWriter.Write((UInt16)block.UNKN1);
            _binWriter.Write((UInt16)block.UNKN2);
            _binWriter.Write((UInt16)block.UNKN3);
            _binWriter.Write((UInt16)block.UNKN4);
            _binWriter.Write((UInt16)block.TIME);
            _binWriter.Write((UInt16)block.UNKN6);
            _binWriter.Write((UInt16)block.UNKN7);
            _binWriter.Write((UInt16)block.UNKN8);
            _binWriter.Write((UInt16)block.EXC1);
            _binWriter.Write((UInt16)block.EXC2);
            _binWriter.Write((UInt16)block.EXC3);
            _binWriter.Write((UInt16)block.EXC4);
            _binWriter.Write((UInt16)block.M1TY);
            _binWriter.Write((UInt16)block.M1HE);
            _binWriter.Write((UInt16)block.M1SP);
            _binWriter.Write((UInt16)block.UNKN16);
            _binWriter.Write((UInt16)block.UNKN17);
            _binWriter.Write((UInt16)block.M2TY);
            _binWriter.Write((UInt16)block.M2HE);
            _binWriter.Write((UInt16)block.M2SP);
            _binWriter.Write((UInt16)block.UNKN21);
            _binWriter.Write((UInt16)block.UNKN22);
        }
Example #2
0
        private void ReadMissionBlock(string name, BigEndianBinaryReader binReader)
        {
            var missionBlock = new MapMissionBlock(name);

            UInt32 uint_size = binReader.ReadUInt32();

            //NOTE: For some reason there is 4 bytes reading offset when MISS block is used in ABTA map files.
            uint_size -= 4;

            missionBlock.UNKN1  = binReader.ReadUInt16();
            missionBlock.UNKN2  = binReader.ReadUInt16();
            missionBlock.UNKN3  = binReader.ReadUInt16();
            missionBlock.UNKN4  = binReader.ReadUInt16();
            missionBlock.TIME   = binReader.ReadUInt16();
            missionBlock.UNKN6  = binReader.ReadUInt16();
            missionBlock.UNKN7  = binReader.ReadUInt16();
            missionBlock.UNKN8  = binReader.ReadUInt16();
            missionBlock.EXC1   = binReader.ReadUInt16();
            missionBlock.EXC2   = binReader.ReadUInt16();
            missionBlock.EXC3   = binReader.ReadUInt16();
            missionBlock.EXC4   = binReader.ReadUInt16();
            missionBlock.M1TY   = binReader.ReadUInt16();
            missionBlock.M1HE   = binReader.ReadUInt16();
            missionBlock.M1SP   = binReader.ReadUInt16();
            missionBlock.UNKN16 = binReader.ReadUInt16();
            missionBlock.UNKN17 = binReader.ReadUInt16();
            missionBlock.M2TY   = binReader.ReadUInt16();
            missionBlock.M2HE   = binReader.ReadUInt16();
            missionBlock.M2SP   = binReader.ReadUInt16();
            missionBlock.UNKN21 = binReader.ReadUInt16();
            missionBlock.UNKN22 = binReader.ReadUInt16();

            MapBuilder.AddBlock(missionBlock);
        }