Exemplo n.º 1
0
        public void Save(string file)
        {
            if (Path.GetExtension(file) != ".adm")
            {
                throw new ArgumentException("File does not have *.adm extension.");
            }

            BufferWriter w = new BufferWriter();

            w.WriteString("ADmapv2");
            w.WriteByte(0); // 'version'
            w.WriteByte(GRID_SIZE);
            w.WriteBytes(new byte[15]); // extra slots

            w.WriteString(Name);
            w.WriteString(Author);

            w.WriteByte(floorType);

            saveObjects(w);

            w.Save(file);
        }
Exemplo n.º 2
0
        private void saveObjects(BufferWriter writer)
        {
            var queryObjectsByType =
                from obj in objects
                group obj by obj.LongName;

            foreach (var objectGroup in queryObjectsByType)
            {
                writer.WriteString(objectGroup.Key);
                ushort count = 0;

                foreach (MapObject obj in objectGroup)
                {
                    count++;
                }

                writer.WriteUShort(count);

                foreach (MapObject obj in objectGroup)
                {
                    obj.WriteSelf(writer);
                }
            }
        }
Exemplo n.º 3
0
 public virtual void WriteSelf(BufferWriter writer)
 {
     writer.WriteUShort(X);
     writer.WriteUShort(Y);
 }