add TransferStatsToMachine menu option

This commit is contained in:
Chris Danford
2005-01-01 10:27:16 +00:00
parent 02d68f44ef
commit cacd23de90
3 changed files with 69 additions and 28 deletions
+59 -9
View File
@@ -51,7 +51,8 @@ void GameCommand::Init()
m_bClearBookkeepingData = false;
m_bClearMachineStats = false;
m_bDownloadMachineStats = false;
m_bTransferStatsFromMachine = false;
m_bTransferStatsToMachine = false;
m_bInsertCredit = false;
m_bResetToFactoryDefaults = false;
m_bStopMusic = false;
@@ -268,9 +269,13 @@ void GameCommand::Load( int iIndex, const Commands& cmds )
{
m_bClearMachineStats = true;
}
else if( sName == "downloadmachinestats" )
else if( sName == "transferstatsfrommachine" )
{
m_bDownloadMachineStats = true;
m_bTransferStatsFromMachine = true;
}
else if( sName == "transferstatstomachine" )
{
m_bTransferStatsToMachine = true;
}
else if( sName == "insertcredit" )
{
@@ -589,30 +594,75 @@ void GameCommand::Apply( PlayerNumber pn ) const
PROFILEMAN->SaveMachineProfile();
SCREENMAN->SystemMessage( "Machine stats cleared." );
}
if( m_bDownloadMachineStats )
if( m_bTransferStatsFromMachine )
{
MEMCARDMAN->TryMountAllCards();
bool bTriedToSave = false;
FOREACH_PlayerNumber( pn )
{
if( MEMCARDMAN->GetCardState(pn) != MEMORY_CARD_STATE_READY )
continue; // skip
bTriedToSave = true;
CString sDir = MEM_CARD_MOUNT_POINT[pn];
sDir += "MachineProfile/";
bool bSaved = PROFILEMAN->GetMachineProfile()->SaveAllToDir( sDir, PREFSMAN->m_bSignProfileData );
if( bSaved )
SCREENMAN->SystemMessage( ssprintf("Machine stats saved to P%d card.",pn+1) );
else
SCREENMAN->SystemMessage( ssprintf("Error saving stats to P%d card.",pn+1) );
return;
SCREENMAN->SystemMessage( ssprintf("Error saving machine stats to P%d card.",pn+1) );
break;
}
MEMCARDMAN->FlushAndReset();
if( !bTriedToSave )
SCREENMAN->SystemMessage( "Stats not saved - No memory cards ready." );
SCREENMAN->SystemMessage( "Stats not saved - No memory cards ready." );
MEMCARDMAN->FlushAndReset();
}
if( m_bTransferStatsToMachine )
{
MEMCARDMAN->TryMountAllCards();
bool bTriedToLoad = false;
FOREACH_PlayerNumber( pn )
{
if( MEMCARDMAN->GetCardState(pn) != MEMORY_CARD_STATE_READY )
continue; // skip
bTriedToLoad = true;
CString sDir = MEM_CARD_MOUNT_POINT[pn];
sDir += "MachineProfile/";
Profile backup = *PROFILEMAN->GetMachineProfile();
Profile::LoadResult lr = PROFILEMAN->GetMachineProfile()->LoadAllFromDir( sDir, PREFSMAN->m_bSignProfileData );
switch( lr )
{
case Profile::success:
SCREENMAN->SystemMessage( ssprintf("Machine stats loaded from P%d card.",pn+1) );
break;
case Profile::failed_no_profile:
SCREENMAN->SystemMessage( ssprintf("There is no profile on P%d card.",pn+1) );
*PROFILEMAN->GetMachineProfile() = backup;
break;
case Profile::failed_tampered:
SCREENMAN->SystemMessage( ssprintf("The profile on P%d card contains tampered data.",pn+1) );
*PROFILEMAN->GetMachineProfile() = backup;
break;
default:
ASSERT(0);
}
break;
}
if( !bTriedToLoad )
SCREENMAN->SystemMessage( "Stats not loaded - No memory cards ready." );
MEMCARDMAN->FlushAndReset();
}
if( m_bInsertCredit )
{