From 95eb10b834c91a38ae5151a95b05a7a2a625d0c4 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 22 Dec 2004 03:49:55 +0000 Subject: [PATCH] split out Profile::SaveStatsXmlCreateNode --- stepmania/src/Profile.cpp | 38 ++++++++++++++++++++++++-------------- stepmania/src/Profile.h | 1 + 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/stepmania/src/Profile.cpp b/stepmania/src/Profile.cpp index 3770c6775e..9768b4981a 100644 --- a/stepmania/src/Profile.cpp +++ b/stepmania/src/Profile.cpp @@ -703,28 +703,38 @@ bool Profile::SaveAllToDir( CString sDir, bool bSignData ) const return bSaved; } +XNode *Profile::SaveStatsXmlCreateNode() const +{ + XNode *xml = new XNode; + + xml->name = "Stats"; + xml->AppendChild( SaveGeneralDataCreateNode() ); + xml->AppendChild( SaveSongScoresCreateNode() ); + xml->AppendChild( SaveCourseScoresCreateNode() ); + xml->AppendChild( SaveCategoryScoresCreateNode() ); + xml->AppendChild( SaveScreenshotDataCreateNode() ); + xml->AppendChild( SaveCalorieDataCreateNode() ); + xml->AppendChild( SaveRecentSongScoresCreateNode() ); + xml->AppendChild( SaveRecentCourseScoresCreateNode() ); + if( IsMachine() ) + xml->AppendChild( SaveCoinDataCreateNode() ); + + return xml; +} + bool Profile::SaveStatsXmlToDir( CString sDir, bool bSignData ) const { + XNode *xml = SaveStatsXmlCreateNode(); + // Save stats.xml CString fn = sDir + STATS_XML; - XNode xml; - xml.name = "Stats"; - xml.AppendChild( SaveGeneralDataCreateNode() ); - xml.AppendChild( SaveSongScoresCreateNode() ); - xml.AppendChild( SaveCourseScoresCreateNode() ); - xml.AppendChild( SaveCategoryScoresCreateNode() ); - xml.AppendChild( SaveScreenshotDataCreateNode() ); - xml.AppendChild( SaveCalorieDataCreateNode() ); - xml.AppendChild( SaveRecentSongScoresCreateNode() ); - xml.AppendChild( SaveRecentCourseScoresCreateNode() ); - if( IsMachine() ) - xml.AppendChild( SaveCoinDataCreateNode() ); - DISP_OPT opts = optDefault; opts.stylesheet = STATS_XSL; opts.write_tabs = false; - bool bSaved = xml.SaveToFile(fn, &opts); + bool bSaved = xml->SaveToFile(fn, &opts); + + SAFE_DELETE( xml ); // Update file cache, or else IsAFile in CryptManager won't see this new file. FILEMAN->FlushDirCache( sDir ); diff --git a/stepmania/src/Profile.h b/stepmania/src/Profile.h index 8075953726..afb2c6a9bd 100644 --- a/stepmania/src/Profile.h +++ b/stepmania/src/Profile.h @@ -278,6 +278,7 @@ public: void SaveEditableDataToDir( CString sDir ) const; bool SaveStatsXmlToDir( CString sDir, bool bSignData ) const; + XNode* SaveStatsXmlCreateNode() const; XNode* SaveGeneralDataCreateNode() const; XNode* SaveSongScoresCreateNode() const; XNode* SaveCourseScoresCreateNode() const;