fix fill machine stats

This commit is contained in:
Chris Danford
2006-01-18 10:09:34 +00:00
parent cec914461e
commit 5f8fc893ce
3 changed files with 85 additions and 90 deletions
+4 -1
View File
@@ -67,6 +67,9 @@ Delete=Delete Existing
Edit=Edit Existing
Practice=Practice
[EditMenu]
Blank=Blank
[EditMenuRow]
Action=Action
Group=Group
@@ -951,6 +954,7 @@ The name you chose conflicts with another profile. Please use a different name.=
These steps will be lost permanently.=These steps will be lost permanently.
This song is missing a music file and cannot be edited.=This song is missing a music file and cannot be edited.
You must supply a name for your new edit.=You must supply a name for your new edit.
Blank=Blank
[ScreenEditOptions]
HelpText=&UP; &DOWN; to change line &LEFT; &RIGHT; to select between options START to accept changes
@@ -1159,7 +1163,6 @@ Edits not cleared - No memory cards ready.=Edits not cleared - No memory cards r
Edits not copied - No memory cards ready.=Edits not copied - No memory cards ready.
Error saving machine stats to P%d card.=Error saving machine stats to P%d card.
Machine stats cleared.=Machine stats cleared.
Machine stats filled.=Machine stats filled.
Machine stats loaded from P%d card.=Machine stats loaded from P%d card.
Machine stats saved to P%d card.=Machine stats saved to P%d card.
Preferences reset.=Preferences reset.
+76 -3
View File
@@ -21,6 +21,8 @@
#include "RageDisplay.h"
#include "InputEventPlus.h"
#include "LocalizedString.h"
#include "Profile.h"
#include "SongManager.h"
static bool g_bIsDisplayed = false;
static bool g_bIsSlow = false;
@@ -574,6 +576,77 @@ class DebugLineClearMachineStats : public IDebugLine
}
};
static HighScore MakeRandomHighScore( float fPercentDP )
{
HighScore hs;
hs.SetName( "FAKE" );
hs.SetGrade( (Grade)SCALE( rand()%5, 0, 4, Grade_Tier01, Grade_Tier05 ) );
hs.SetScore( rand()%100*1000 );
hs.SetPercentDP( fPercentDP );
hs.SetSurviveSeconds( randomf(30.0f, 100.0f) );
PlayerOptions po;
po.ChooseRandomModifiers();
hs.SetModifiers( po.GetString() );
hs.SetDateTime( DateTime::GetNowDateTime() );
hs.SetPlayerGuid( Profile::MakeGuid() );
hs.SetMachineGuid( Profile::MakeGuid() );
hs.SetProductID( rand()%10 );
FOREACH_TapNoteScore( tns )
hs.SetTapNoteScore( tns, rand() % 100 );
FOREACH_HoldNoteScore( hns )
hs.SetHoldNoteScore( hns, rand() % 100 );
RadarValues rv;
FOREACH_RadarCategory( rc )
rv.m_Values.f[rc] = randomf( 0, 1 );
hs.SetRadarValues( rv );
return hs;
}
static void FillProfile( Profile *pProfile )
{
// Choose a percent for all scores. This is useful for testing unlocks
// where some elements are unlocked at a certain percent complete
float fPercentDP = randomf( 0.6f, 1.2f );
CLAMP( fPercentDP, 0.0f, 1.0f );
int iCount = pProfile->IsMachine()?
PREFSMAN->m_iMaxHighScoresPerListForMachine.Get():
PREFSMAN->m_iMaxHighScoresPerListForPlayer.Get();
vector<Song*> vpAllSongs = SONGMAN->GetAllSongs();
FOREACH( Song*, vpAllSongs, pSong )
{
vector<Steps*> vpAllSteps = (*pSong)->GetAllSteps();
FOREACH( Steps*, vpAllSteps, pSteps )
{
pProfile->IncrementStepsPlayCount( *pSong, *pSteps );
for( int i=0; i<iCount; i++ )
{
int iIndex = 0;
pProfile->AddStepsHighScore( *pSong, *pSteps, MakeRandomHighScore(fPercentDP), iIndex );
}
}
}
vector<Course*> vpAllCourses;
SONGMAN->GetAllCourses( vpAllCourses, true );
FOREACH( Course*, vpAllCourses, pCourse )
{
vector<Trail*> vpAllTrails;
(*pCourse)->GetAllTrails( vpAllTrails );
FOREACH( Trail*, vpAllTrails, pTrail )
{
pProfile->IncrementCoursePlayCount( *pCourse, *pTrail );
for( int i=0; i<iCount; i++ )
{
int iIndex = 0;
pProfile->AddCourseHighScore( *pCourse, *pTrail, MakeRandomHighScore(fPercentDP), iIndex );
}
}
}
}
class DebugLineFillMachineStats : public IDebugLine
{
virtual CString GetDescription() { return FILL_MACHINE_STATS.GetValue(); }
@@ -581,9 +654,9 @@ class DebugLineFillMachineStats : public IDebugLine
virtual bool IsEnabled() { return true; }
virtual void Do( CString &sMessageOut )
{
GameCommand gc;
gc.Load( 0, ParseCommands("FillMachineStats") );
gc.ApplyToAllPlayers();
Profile* pProfile = PROFILEMAN->GetMachineProfile();
FillProfile( pProfile );
PROFILEMAN->SaveMachineProfile();
IDebugLine::Do( sMessageOut );
}
};
+5 -86
View File
@@ -106,86 +106,6 @@ static CString ClearMemoryCardEdits()
return ssprintf(EDITS_CLEARED.GetValue(),iNumSuccessful,iNumAttempted-iNumSuccessful);
}
static HighScore MakeRandomHighScore( float fPercentDP )
{
HighScore hs;
hs.SetName( "FAKE" );
hs.SetGrade( (Grade)SCALE( rand()%5, 0, 4, Grade_Tier01, Grade_Tier05 ) );
hs.SetScore( rand()%100*1000 );
hs.SetPercentDP( fPercentDP );
hs.SetSurviveSeconds( randomf(30.0f, 100.0f) );
PlayerOptions po;
po.ChooseRandomModifiers();
hs.SetModifiers( po.GetString() );
hs.SetDateTime( DateTime::GetNowDateTime() );
hs.SetPlayerGuid( Profile::MakeGuid() );
hs.SetMachineGuid( Profile::MakeGuid() );
hs.SetProductID( rand()%10 );
FOREACH_TapNoteScore( tns )
hs.SetTapNoteScore( tns, rand() % 100 );
FOREACH_HoldNoteScore( hns )
hs.SetHoldNoteScore( hns, rand() % 100 );
RadarValues rv;
FOREACH_RadarCategory( rc )
rv.m_Values.f[rc] = randomf( 0, 1 );
hs.SetRadarValues( rv );
return hs;
}
static void FillProfile( Profile *pProfile )
{
// Choose a percent for all scores. This is useful for testing unlocks
// where some elements are unlocked at a certain percent complete
float fPercentDP = randomf( 0.6f, 1.2f );
CLAMP( fPercentDP, 0.0f, 1.0f );
int iCount = pProfile->IsMachine()?
PREFSMAN->m_iMaxHighScoresPerListForMachine.Get():
PREFSMAN->m_iMaxHighScoresPerListForPlayer.Get();
vector<Song*> vpAllSongs = SONGMAN->GetAllSongs();
FOREACH( Song*, vpAllSongs, pSong )
{
vector<Steps*> vpAllSteps = (*pSong)->GetAllSteps();
FOREACH( Steps*, vpAllSteps, pSteps )
{
pProfile->IncrementStepsPlayCount( *pSong, *pSteps );
for( int i=0; i<iCount; i++ )
{
int iIndex = 0;
pProfile->AddStepsHighScore( *pSong, *pSteps, MakeRandomHighScore(fPercentDP), iIndex );
}
}
}
vector<Course*> vpAllCourses;
SONGMAN->GetAllCourses( vpAllCourses, true );
FOREACH( Course*, vpAllCourses, pCourse )
{
vector<Trail*> vpAllTrails;
(*pCourse)->GetAllTrails( vpAllTrails );
FOREACH( Trail*, vpAllTrails, pTrail )
{
pProfile->IncrementCoursePlayCount( *pCourse, *pTrail );
for( int i=0; i<iCount; i++ )
{
int iIndex = 0;
pProfile->AddCourseHighScore( *pCourse, *pTrail, MakeRandomHighScore(fPercentDP), iIndex );
}
}
}
}
static LocalizedString MACHINE_STATS_FILLED( "ScreenServiceAction", "Machine stats filled." );
static CString FillMachineStats()
{
Profile* pProfile = PROFILEMAN->GetMachineProfile();
FillProfile( pProfile );
PROFILEMAN->SaveMachineProfile();
return MACHINE_STATS_FILLED.GetValue();
}
static LocalizedString STATS_NOT_SAVED ( "ScreenServiceAction", "Stats not saved - No memory cards ready." );
static LocalizedString MACHINE_STATS_SAVED ( "ScreenServiceAction", "Machine stats saved to P%d card." );
@@ -457,17 +377,16 @@ void ScreenServiceAction::Init()
CString (*pfn)() = NULL;
if( sAction == "ClearBookkeepingData" ) pfn = ClearBookkeepingData;
else if( sAction == "ClearMachineStats" ) pfn = ClearMachineStats;
else if( sAction == "ClearMachineEdits" ) pfn = ClearMachineEdits;
else if( sAction == "ClearMemoryCardEdits" ) pfn = ClearMemoryCardEdits;
else if( sAction == "FillMachineStats" ) pfn = FillMachineStats;
if( sAction == "ClearBookkeepingData" ) pfn = ClearBookkeepingData;
else if( sAction == "ClearMachineStats" ) pfn = ClearMachineStats;
else if( sAction == "ClearMachineEdits" ) pfn = ClearMachineEdits;
else if( sAction == "ClearMemoryCardEdits" ) pfn = ClearMemoryCardEdits;
else if( sAction == "TransferStatsMachineToMemoryCard" ) pfn = TransferStatsMachineToMemoryCard;
else if( sAction == "TransferStatsMemoryCardToMachine" ) pfn = TransferStatsMemoryCardToMachine;
else if( sAction == "CopyEditsMachineToMemoryCard" ) pfn = CopyEditsMachineToMemoryCard;
else if( sAction == "CopyEditsMemoryCardToMachine" ) pfn = CopyEditsMemoryCardToMachine;
else if( sAction == "SyncEditsMachineToMemoryCard" ) pfn = SyncEditsMachineToMemoryCard;
else if( sAction == "ResetPreferences" ) pfn = ResetPreferences;
else if( sAction == "ResetPreferences" ) pfn = ResetPreferences;
ASSERT_M( pfn, sAction );