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); } }
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(); }
internal void Write(Writer writer) { writer.WriteRSDKString(Name); }
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(); }