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();
}