Пример #1
0
        internal void Write(Writer writer)
        {
            // Write zone name
            writer.WriteRSDKString(Title);

            // Write the five "display" bytes
            writer.Write(ActiveLayer0);
            writer.Write(ActiveLayer1);
            writer.Write(ActiveLayer2);
            writer.Write(ActiveLayer3);
            writer.Write(Midpoint);

            // Write width
            writer.Write((byte)(this.width & 0xff));
            writer.Write((byte)(this.width >> 8));

            // Write height
            writer.Write((byte)(this.height & 0xff));
            writer.Write((byte)(this.height >> 8));

            // Write tilemap
            for (int h = 0; h < this.height; h++)
            {
                for (int w = 0; w < this.width; w++)
                {
                    writer.Write((byte)(this.MapLayout[h][w] & 0xff));
                    writer.Write((byte)(this.MapLayout[h][w] >> 8));
                }
            }

            // Write number of objects
            if (objects.Count >= MaxObjectCount)
            {
                Console.WriteLine("Object Count > Max Objects!");
                return;
            }

            writer.Write((ushort)objects.Count);

            // Write objects
            objects = objects.OrderBy(o => o.id).ToList();

            for (int n = 0; n < objects.Count; n++)
            {
                Object obj = objects[n];

                obj.Write(writer);
            }

            writer.Close();
        }
Пример #2
0
        internal void WriteWAVConfiguration(Writer writer)
        {
            writer.Write((byte)SoundFX.Count);

            foreach (string wavname in SfxNames)
            {
                writer.WriteRSDKString(wavname);
            }

            foreach (string wav in SoundFX)
            {
                writer.Write(wav);
            }
        }
Пример #3
0
        public void Write(Writer writer)
        {
            writer.Write((byte)SpriteSheets.Count);
            for (int i = 0; i < SpriteSheets.Count; ++i)
            {
                writer.WriteRSDKString(SpriteSheets[i]);
            }

            writer.Write((byte)Animations.Count);
            for (int i = 0; i < Animations.Count; ++i)
            {
                Animations[i].Write(writer);
            }

            writer.Write((byte)CollisionBoxes.Count);
            for (int i = 0; i < CollisionBoxes.Count; ++i)
            {
                CollisionBoxes[i].Write(writer);
            }
            writer.Close();
        }
Пример #4
0
 public void Write(Writer writer)
 {
     writer.WriteRSDKString(Name);
     writer.Write(Value);
 }