Beispiel #1
0
 internal void WriteWAVConfiguration(Writer writer)
 {
     writer.Write((byte)WAVs.Count);
     foreach (string wavname in WAVnames)
     {
         writer.WriteRSDKString(wavname);
     }
     foreach (WAVConfiguration wav in WAVs)
     {
         wav.Write(writer);
     }
 }
Beispiel #2
0
        internal void Write(Writer writer)
        {
            writer.WriteRSDKString(GameName);
            writer.WriteRSDKString(GameSubname);

            this.WritePalettes(writer);
            this.WriteObjectsNames(writer);

            writer.Write((byte)Globals.Count);

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

            this.WriteWAVConfiguration(writer);

            Stages.Write(writer);
            writer.Write((byte)0);

            writer.Close();
        }
Beispiel #3
0
 internal void Write(Writer writer)
 {
     writer.WriteRSDKString(Name);
 }
Beispiel #4
0
        internal void Write(Writer writer)
        {
            // Write zone name
            writer.WriteRSDKString(Title);

            // Write the five "display" bytes we kept
            writer.Write(displayBytes);

            // 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
            int num_of_obj = objects.Count;

            writer.Write((byte)(num_of_obj & 0xff));
            writer.Write((byte)((num_of_obj >> 8) & 0xff));
            writer.Write((byte)((num_of_obj >> 16) & 0xff));
            writer.Write((byte)((num_of_obj >> 24) & 0xff));

            // Write objects

            for (int n = 0; n < num_of_obj; n++)
            {
                Object obj         = objects[n];
                int    obj_type    = obj.type;
                int    obj_subtype = obj.subtype;
                int    obj_xPos    = obj.xPos;
                int    obj_yPos    = obj.yPos;

                // Most likely the type and subtypes are still one byte long in v2
                // and the two other bytes are for an empty field

                writer.Write((byte)(obj_type & 0xff));
                writer.Write(obj_type >> 8);

                writer.Write((byte)(obj_subtype & 0xff));
                writer.Write(obj_subtype >> 8);

                //writer.Write(0);
                //writer.Write(0);

                writer.Write((byte)(obj_xPos & 0xff));
                writer.Write((byte)((obj_xPos >> 8) & 0xff));
                writer.Write((byte)((obj_xPos >> 16) & 0xff));
                writer.Write((byte)((obj_xPos >> 24) & 0xff));

                writer.Write((byte)(obj_yPos & 0xff));
                writer.Write((byte)((obj_yPos >> 8) & 0xff));
                writer.Write((byte)((obj_yPos >> 16) & 0xff));
                writer.Write((byte)((obj_yPos >> 24) & 0xff));
            }

            writer.Close();
        }