add a write-only copy of Coin data to stats.xml

This commit is contained in:
Chris Danford
2004-07-31 03:24:15 +00:00
parent 899a75cf92
commit 17df457bc8
3 changed files with 59 additions and 10 deletions
+10 -10
View File
@@ -116,12 +116,12 @@ int StringToDayInYear( CString sDayInYear )
static const CString LAST_DAYS_NAME[NUM_LAST_DAYS] = static const CString LAST_DAYS_NAME[NUM_LAST_DAYS] =
{ {
"Yesterday", "Yesterday",
"2 Days Ago", "Day2Ago",
"3 Days Ago", "Day3Ago",
"4 Days Ago", "Day4Ago",
"5 Days Ago", "Day5Ago",
"6 Days Ago", "Day6Ago",
"7 Days Ago", "Day7Ago",
}; };
CString LastDayToString( int iLastDayIndex ) CString LastDayToString( int iLastDayIndex )
@@ -147,7 +147,7 @@ CString DayOfWeekToString( int iDayOfWeekIndex )
CString HourInDayToString( int iHourInDayIndex ) CString HourInDayToString( int iHourInDayIndex )
{ {
return ssprintf("%02d:00", iHourInDayIndex); return ssprintf("Hour%02d_00", iHourInDayIndex);
} }
static const CString MONTH_TO_NAME[MONTHS_IN_YEAR] = static const CString MONTH_TO_NAME[MONTHS_IN_YEAR] =
@@ -175,9 +175,9 @@ CString LastWeekToString( int iLastWeekIndex )
{ {
switch( iLastWeekIndex ) switch( iLastWeekIndex )
{ {
case 0: return "This week"; break; case 0: return "ThisWeek"; break;
case 1: return "Last week"; break; case 1: return "LastWeek"; break;
default: return ssprintf("%d weeks ago",iLastWeekIndex); break; default: return ssprintf("Week%dAgo",iLastWeekIndex); break;
} }
} }
+47
View File
@@ -21,6 +21,7 @@
#include "XmlFile.h" #include "XmlFile.h"
#include "Foreach.h" #include "Foreach.h"
#include "CatalogXml.h" #include "CatalogXml.h"
#include "Bookkeeper.h"
// //
// Old file versions for backward compatibility // Old file versions for backward compatibility
@@ -647,6 +648,8 @@ bool Profile::SaveAllToDir( CString sDir, bool bSignData ) const
xml.AppendChild( SaveCalorieDataCreateNode() ); xml.AppendChild( SaveCalorieDataCreateNode() );
xml.AppendChild( SaveRecentSongScoresCreateNode() ); xml.AppendChild( SaveRecentSongScoresCreateNode() );
xml.AppendChild( SaveRecentCourseScoresCreateNode() ); xml.AppendChild( SaveRecentCourseScoresCreateNode() );
if( IsMachine() )
xml.AppendChild( SaveCoinDataCreateNode() );
DISP_OPT opts = optDefault; DISP_OPT opts = optDefault;
opts.stylesheet = STYLE_XSL; opts.stylesheet = STYLE_XSL;
@@ -1496,6 +1499,50 @@ bool Profile::IsMachine() const
return this == PROFILEMAN->GetMachineProfile(); return this == PROFILEMAN->GetMachineProfile();
} }
XNode* Profile::SaveCoinDataCreateNode() const
{
CHECKPOINT;
const Profile* pProfile = this;
ASSERT( pProfile );
XNode* pNode = new XNode;
pNode->name = "CoinData";
{
int coins[NUM_LAST_DAYS];
BOOKKEEPER->GetCoinsLastDays( coins );
XNode* p = pNode->AppendChild( "LastDays" );
for( int i=0; i<NUM_LAST_DAYS; i++ )
p->AppendChild( LastDayToString(i), coins[i] );
}
{
int coins[NUM_LAST_WEEKS];
BOOKKEEPER->GetCoinsLastWeeks( coins );
XNode* p = pNode->AppendChild( "LastWeeks" );
for( int i=0; i<NUM_LAST_WEEKS; i++ )
p->AppendChild( LastWeekToString(i), coins[i] );
}
{
int coins[DAYS_IN_WEEK];
BOOKKEEPER->GetCoinsByDayOfWeek( coins );
XNode* p = pNode->AppendChild( "DayOfWeek" );
for( int i=0; i<DAYS_IN_WEEK; i++ )
p->AppendChild( DayOfWeekToString(i), coins[i] );
}
{
int coins[HOURS_IN_DAY];
BOOKKEEPER->GetCoinsByHour( coins );
XNode* p = pNode->AppendChild( "Hour" );
for( int i=0; i<HOURS_IN_DAY; i++ )
p->AppendChild( HourInDayToString(i), coins[i] );
}
return pNode;
}
/* /*
* (c) 2001-2004 Chris Danford * (c) 2001-2004 Chris Danford
* All rights reserved. * All rights reserved.
+2
View File
@@ -279,6 +279,8 @@ public:
XNode* SaveRecentSongScoresCreateNode() const; XNode* SaveRecentSongScoresCreateNode() const;
XNode* SaveRecentCourseScoresCreateNode() const; XNode* SaveRecentCourseScoresCreateNode() const;
XNode* SaveCoinDataCreateNode() const;
void SaveStatsWebPageToDir( CString sDir ) const; void SaveStatsWebPageToDir( CString sDir ) const;
void SaveMachinePublicKeyToDir( CString sDir ) const; void SaveMachinePublicKeyToDir( CString sDir ) const;