private void readXMLPlayerFile()
{
if (!File.Exists("Saves/PlayerMemorySave.xml"))
{
for (int i = 1; i <= numLevels; i++)
{
l[i].setComplete(false);
}
writeXMLPlayerFile();
levelPanelColors();
}
XmlTextReader reader = new XmlTextReader("Saves/PlayerMemorySave.xml");
XmlNodeType type;
bool thisPlayer = false;
bool foundMe = false;
int id = 0;
int playerTempID = 0;
string gameMode = "";
while (reader.Read())
{
type = reader.NodeType;
if (type == XmlNodeType.Element)
{
if (reader.Name == "Name")
{
reader.Read();
if (reader.Value == playerName)
{
thisPlayer = true;
foundMe = true;
}
else
{
thisPlayer = false;
player[playerTempID].setName(reader.Value);
}
}
if (reader.Name == "GameMode")
{
reader.Read();
gameMode = reader.Value.ToString();
}
if (reader.Name == "LevelID" && gameMode == "Memory")
{
reader.Read();
id = Convert.ToInt32(reader.Value);
}
if (reader.Name == "Completed" && gameMode == "Memory")
{
reader.Read();
if (id <= numLevels)
{
if (thisPlayer)
{
l[id].setComplete(Convert.ToBoolean(reader.Value));
}
else
{
player[playerTempID].setLevelComplete(id, Convert.ToBoolean(reader.Value));
}
}
}
}
else if (type == XmlNodeType.EndElement)
{
if (reader.Name == "Player")
{
thisPlayer = false;
playerTempID++;
}
}
}
reader.Close();
if (!foundMe)
{
for (int i = 1; i <= numLevels; i++)
{
l[i].setComplete(false);
}
}
levelPanelColors();
}
public void writeXMLPlayerFile()
{
int playerID = 0;
// Create a new file in C:\\ dir
XmlTextWriter textWriter = new XmlTextWriter("Saves/PlayerMemorySave.xml", null);
// Opens the document
textWriter.WriteStartDocument();
// Write comments
textWriter.WriteComment("Quick Clicks Save File. Do not edit!");
textWriter.WriteStartElement("QuickClicks");
textWriter.WriteStartElement("Player");
textWriter.WriteStartElement("Name", "");
textWriter.WriteString(playerName);
textWriter.WriteEndElement();
textWriter.WriteStartElement("GameMode", "");
textWriter.WriteString("Memory");
textWriter.WriteEndElement();
for (int i = 1; i <= numLevels; i++)
{
textWriter.WriteStartElement("Level");
textWriter.WriteStartElement("LevelID", "");
textWriter.WriteString(i.ToString());
textWriter.WriteEndElement();
textWriter.WriteStartElement("Completed", "");
textWriter.WriteString(l[i].getComplete().ToString());
textWriter.WriteEndElement();
// Ends "Level" Element
textWriter.WriteEndElement();
}
// Ends "Player" Element
textWriter.WriteEndElement();
while (player[playerID].getName() != null)
{
textWriter.WriteStartElement("Player");
textWriter.WriteStartElement("Name", "");
textWriter.WriteString(player[playerID].getName());
textWriter.WriteEndElement();
for (int i = 1; i <= numLevels; i++)
{
textWriter.WriteStartElement("Level");
textWriter.WriteStartElement("LevelID", "");
textWriter.WriteString(i.ToString());
textWriter.WriteEndElement();
textWriter.WriteStartElement("Completed", "");
textWriter.WriteString(player[playerID].getLevelComplete(i).ToString());
textWriter.WriteEndElement();
// Ends Level Element
textWriter.WriteEndElement();
}
// Ends "Player" Element
textWriter.WriteEndElement();
playerID++;
}
// Ends the "QuickClicks" Element
textWriter.WriteEndElement();
// Ends the document.
textWriter.WriteEndDocument();
// close writer
textWriter.Close();
}
// Read file function
private void readMemoryXMLFile()
{
if (!File.Exists("saveMemoryFile.xml"))
{
writeMemoryXMLFile();
}
XmlTextReader reader = new XmlTextReader("saveMemoryFile.xml");
XmlNodeType type;
int i = 0;
while (reader.Read())
{
type = reader.NodeType;
if (type == XmlNodeType.Element)
{
if (reader.Name == "Id")
{
reader.Read();
if (Convert.ToInt32(reader.Value) <= numLevels)
{
i = Convert.ToInt32(reader.Value);
}
else
{
i = 0;
break;
}
}
else if (reader.Name == "Interval")
{
reader.Read();
l[i].setInterval(Convert.ToInt32(reader.Value));
}
else if (reader.Name == "Colors")
{
reader.Read();
l[i].setColors(Convert.ToInt32(reader.Value));
}
else if (reader.Name == "ImagePack")
{
reader.Read();
l[i].setImagePack(Convert.ToInt32(reader.Value));
}
else if (reader.Name == "NumButtons")
{
reader.Read();
l[i].setNumButtons(Convert.ToInt32(reader.Value));
}
else if (reader.Name == "NumVariables")
{
reader.Read();
l[i].setNumVariables(Convert.ToInt32(reader.Value));
}
}
}
reader.Close();
levelSetup();
}
private void writeMemoryXMLFile()
{
// Create a new file in C:\\ dir
XmlTextWriter textWriter = new XmlTextWriter("saveMemoryFile.xml", null);
// Opens the document
textWriter.WriteStartDocument();
// Write comments
textWriter.WriteComment("Quick Clicks Save File. Do not edit!");
// Write first element
textWriter.WriteStartElement("QuickClicks");
textWriter.WriteStartElement("Levels");
for (int i = 1; i <= numLevels; i++)
{
textWriter.WriteStartElement("Level");
textWriter.WriteStartElement("Id", "");
textWriter.WriteString(i.ToString());
textWriter.WriteEndElement();
textWriter.WriteStartElement("Interval", "");
textWriter.WriteString(l[i].getInterval().ToString());
textWriter.WriteEndElement();
textWriter.WriteStartElement("Colors", "");
textWriter.WriteString(l[i].getColors().ToString());
textWriter.WriteEndElement();
textWriter.WriteStartElement("ImagePack", "");
textWriter.WriteString(l[i].getImagePack().ToString());
textWriter.WriteEndElement();
textWriter.WriteStartElement("NumButtons", "");
textWriter.WriteString(l[i].getNumButtons().ToString());
textWriter.WriteEndElement();
textWriter.WriteStartElement("NumVariables", "");
textWriter.WriteString(l[i].getNumVariables().ToString());
textWriter.WriteEndElement();
textWriter.WriteEndElement();
}
textWriter.WriteEndElement();
textWriter.WriteEndElement();
// Ends the document.
textWriter.WriteEndDocument();
// close writer
textWriter.Close();
}