コード例 #1
0
        /// <summary>
        /// Charger un projet
        /// </summary>
        /// <param name="pPath">Lien vers le fichier XML de chargement.</param>
        public bool LoadProject(string path)
        {
            Type[] ScriptTypes = AppTools.GetScriptTypes();

            XmlSerializer XML_Project = new XmlSerializer(typeof(VO_Game), ScriptTypes);

            XmlReader reader   = new XmlTextReader(path);
            bool      wasEmpty = reader.IsEmptyElement;

            reader.Read();
            if (wasEmpty)
            {
                return(false);
            }

            //Récupération
            reader.ReadStartElement(XML.NODE_ROOT);
            Game = (VO_Game)XML_Project.Deserialize(reader);
            reader.ReadEndElement();

            Game.Project.RootPath        = Path.GetDirectoryName(path) + "\\";
            Game.Project.ProjectFileName = Path.GetFileNameWithoutExtension(path);
            reader.Close();
            return(true);
        }
コード例 #2
0
        /// <summary>
        /// Sauvegarde l'intégralité du projet (xml général et maps)
        /// </summary>
        public void SaveProject()
        {
            //Cleanup Projet
            ValidationTools.CleanupProject();

            Type[] ScriptTypes = AppTools.GetScriptTypes();

            XmlSerializer XML_Project = new XmlSerializer(typeof(VO_Game), ScriptTypes);

            TextWriter text      = new StringWriter();
            XmlWriter  xmlWriter = new XmlTextWriter(text);

            //Début de l'écriture
            xmlWriter.WriteStartElement(XML.NODE_ROOT);
            XML_Project.Serialize(xmlWriter, GameCore.Instance.Game);
            xmlWriter.WriteEndElement();

            StreamWriter stream = File.CreateText(GameCore.Instance.Game.Project.RootPath + "\\" + ValidationTools.NormalizeFolderName(GameCore.Instance.Game.Project.ProjectFileName) + GlobalConstants.EXT_PROJECT);

            stream.Write(text.ToString());
            stream.Close();

            xmlWriter.Close();
            text.Close();
        }