public void ToXml(XmlTextWriter writer) { writer.WriteStartElement("Game"); _settings.ToXml(writer); _defaultSetup.ToXml(writer); _lipSync.ToXml(writer); _propertySchema.ToXml(writer); writer.WriteStartElement("GlobalMessages"); int messageIndex = GLOBAL_MESSAGE_ID_START; foreach (string message in _globalMessages) { writer.WriteStartElement("Message"); writer.WriteAttributeString("ID", messageIndex.ToString()); writer.WriteValue(message); writer.WriteEndElement(); messageIndex++; } writer.WriteEndElement(); // We need to serialize the interaction variables in case // they don't upgrade a room until later, and it might // use the global interaction variables writer.WriteStartElement("OldInteractionVariables"); foreach (OldInteractionVariable var in _oldInteractionVariables) { writer.WriteStartElement("Variable"); writer.WriteAttributeString("Name", var.Name); writer.WriteAttributeString("Value", var.Value.ToString()); writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteStartElement("Plugins"); foreach (Plugin plugin in _plugins) { plugin.ToXml(writer); } writer.WriteEndElement(); writer.WriteStartElement("Rooms"); _rooms.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("GUIs"); _guis.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("InventoryItems"); _inventoryItems.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("TextParser"); _textParser.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("Characters"); _characters.ToXml(writer); writer.WriteEndElement(); writer.WriteElementString("PlayerCharacter", (_playerCharacter == null) ? string.Empty : _playerCharacter.ID.ToString()); writer.WriteStartElement("Dialogs"); _dialogs.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("Cursors"); foreach (MouseCursor cursor in _cursors) { cursor.ToXml(writer); } writer.WriteEndElement(); writer.WriteStartElement("Fonts"); foreach (Font font in _fonts) { font.ToXml(writer); } writer.WriteEndElement(); WritePaletteToXML(writer); writer.WriteStartElement("GlobalVariables"); _globalVariables.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("Sprites"); _sprites.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("Views"); _views.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("DeletedViews"); foreach (int viewID in _deletedViewIDs.Keys) { writer.WriteElementString("ViewID", viewID.ToString()); } writer.WriteEndElement(); writer.WriteStartElement("Scripts"); _scripts.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("AudioClips"); _audioClips.ToXml(writer); writer.WriteEndElement(); writer.WriteStartElement("AudioClipTypes"); foreach (AudioClipType audioClipType in _audioClipTypes) { audioClipType.ToXml(writer); } writer.WriteEndElement(); writer.WriteStartElement("Translations"); foreach (Translation translation in _translations) { translation.ToXml(writer); } writer.WriteEndElement(); writer.WriteEndElement(); }