add ScreenEnding to show stats
add weight/calories to Profile
This commit is contained in:
@@ -43,8 +43,8 @@ ProfileManager* PROFILEMAN = NULL; // global and accessable from anywhere in our
|
|||||||
#define COURSE_SCORES_FILE "CourseScores.dat"
|
#define COURSE_SCORES_FILE "CourseScores.dat"
|
||||||
#define STATS_HTML_FILE "stats.html"
|
#define STATS_HTML_FILE "stats.html"
|
||||||
#define STYLE_CSS_FILE "style.css"
|
#define STYLE_CSS_FILE "style.css"
|
||||||
#define NEW_MEM_CARD_NAME "NewCard"
|
#define NEW_MEM_CARD_NAME ""
|
||||||
#define NEW_PROFILE_NAME "NewProfile"
|
#define NEW_PROFILE_NAME ""
|
||||||
|
|
||||||
#define SM_300_STATISTICS_FILE "statistics.ini"
|
#define SM_300_STATISTICS_FILE "statistics.ini"
|
||||||
|
|
||||||
@@ -64,6 +64,34 @@ static const char *MEM_CARD_DIR[NUM_PLAYERS] =
|
|||||||
"@mc2/",
|
"@mc2/",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
CString Profile::GetDisplayName()
|
||||||
|
{
|
||||||
|
if( !m_sName.empty() )
|
||||||
|
return m_sName;
|
||||||
|
else if( !m_sLastUsedHighScoreName.empty() )
|
||||||
|
return m_sLastUsedHighScoreName;
|
||||||
|
else
|
||||||
|
return "NO NAME";
|
||||||
|
}
|
||||||
|
|
||||||
|
CString Profile::GetDisplayCaloriesBurned()
|
||||||
|
{
|
||||||
|
if( m_fWeightPounds == 0 ) // weight not entered
|
||||||
|
return "N/A";
|
||||||
|
else
|
||||||
|
return ssprintf("%f.3Cal",m_fCaloriesBurned);
|
||||||
|
}
|
||||||
|
|
||||||
|
int Profile::GetTotalNumSongsPlayed()
|
||||||
|
{
|
||||||
|
int iTotal = 0;
|
||||||
|
for( int i=0; i<NUM_PLAY_MODES; i++ )
|
||||||
|
iTotal += m_iNumSongsPlayedByPlayMode[i];
|
||||||
|
return iTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
ProfileManager::ProfileManager()
|
ProfileManager::ProfileManager()
|
||||||
{
|
{
|
||||||
for( int p=0; p<NUM_PLAYERS; p++ )
|
for( int p=0; p<NUM_PLAYERS; p++ )
|
||||||
@@ -129,8 +157,6 @@ bool ProfileManager::LoadProfile( PlayerNumber pn, CString sProfileDir, bool bIs
|
|||||||
|
|
||||||
bool ProfileManager::CreateProfile( CString sProfileDir, CString sName )
|
bool ProfileManager::CreateProfile( CString sProfileDir, CString sName )
|
||||||
{
|
{
|
||||||
ASSERT( !sName.empty() );
|
|
||||||
|
|
||||||
bool bResult;
|
bool bResult;
|
||||||
|
|
||||||
Profile pro;
|
Profile pro;
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ struct Profile
|
|||||||
m_iTotalPlaySeconds = 0;
|
m_iTotalPlaySeconds = 0;
|
||||||
m_iTotalGameplaySeconds = 0;
|
m_iTotalGameplaySeconds = 0;
|
||||||
m_iCurrentCombo = 0;
|
m_iCurrentCombo = 0;
|
||||||
|
m_fWeightPounds = 0;
|
||||||
|
m_fCaloriesBurned = 0;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for( i=0; i<NUM_PLAY_MODES; i++ )
|
for( i=0; i<NUM_PLAY_MODES; i++ )
|
||||||
@@ -42,6 +44,10 @@ struct Profile
|
|||||||
m_iNumSongsPlayedByMeter[i] = 0;
|
m_iNumSongsPlayedByMeter[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
CString GetDisplayName();
|
||||||
|
CString GetDisplayCaloriesBurned();
|
||||||
|
int GetTotalNumSongsPlayed();
|
||||||
|
|
||||||
bool LoadFromIni( CString sIniPath );
|
bool LoadFromIni( CString sIniPath );
|
||||||
bool SaveToIni( CString sIniPath );
|
bool SaveToIni( CString sIniPath );
|
||||||
CString m_sName;
|
CString m_sName;
|
||||||
@@ -52,6 +58,8 @@ struct Profile
|
|||||||
int m_iTotalPlaySeconds;
|
int m_iTotalPlaySeconds;
|
||||||
int m_iTotalGameplaySeconds;
|
int m_iTotalGameplaySeconds;
|
||||||
int m_iCurrentCombo;
|
int m_iCurrentCombo;
|
||||||
|
float m_fWeightPounds;
|
||||||
|
int m_fCaloriesBurned;
|
||||||
int m_iNumSongsPlayedByPlayMode[NUM_PLAY_MODES];
|
int m_iNumSongsPlayedByPlayMode[NUM_PLAY_MODES];
|
||||||
int m_iNumSongsPlayedByStyle[NUM_STYLES];
|
int m_iNumSongsPlayedByStyle[NUM_STYLES];
|
||||||
int m_iNumSongsPlayedByDifficulty[NUM_DIFFICULTIES];
|
int m_iNumSongsPlayedByDifficulty[NUM_DIFFICULTIES];
|
||||||
|
|||||||
@@ -291,6 +291,7 @@ void Screen::ClearMessageQueue( const ScreenMessage SM )
|
|||||||
#include "ScreenTestInput.h"
|
#include "ScreenTestInput.h"
|
||||||
#include "ScreenBookkeeping.h"
|
#include "ScreenBookkeeping.h"
|
||||||
#include "ScreenBranch.h"
|
#include "ScreenBranch.h"
|
||||||
|
#include "ScreenEnding.h"
|
||||||
|
|
||||||
Screen* Screen::Create( CString sClassName )
|
Screen* Screen::Create( CString sClassName )
|
||||||
{
|
{
|
||||||
@@ -395,6 +396,7 @@ Screen* Screen::Create( CString sClassName )
|
|||||||
IF_RETURN( ScreenTestInput );
|
IF_RETURN( ScreenTestInput );
|
||||||
IF_RETURN( ScreenBookkeeping );
|
IF_RETURN( ScreenBookkeeping );
|
||||||
IF_RETURN( ScreenBranch );
|
IF_RETURN( ScreenBranch );
|
||||||
|
IF_RETURN( ScreenEnding );
|
||||||
|
|
||||||
RageException::Throw( "Invalid Screen class name '%s'", sClassName.c_str() );
|
RageException::Throw( "Invalid Screen class name '%s'", sClassName.c_str() );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
#define INITIAL_SCREEN THEME->GetMetric("Common","InitialScreen")
|
#define INITIAL_SCREEN THEME->GetMetric("Common","InitialScreen")
|
||||||
|
|
||||||
|
|
||||||
ScreenAttract::ScreenAttract( CString sClassName ) : Screen( sClassName )
|
ScreenAttract::ScreenAttract( CString sClassName, bool bResetGameState ) : Screen( sClassName )
|
||||||
{
|
{
|
||||||
LOG->Trace( "ScreenAttract::ScreenAttract(%s)", sClassName.c_str() );
|
LOG->Trace( "ScreenAttract::ScreenAttract(%s)", sClassName.c_str() );
|
||||||
|
|
||||||
@@ -38,6 +38,7 @@ ScreenAttract::ScreenAttract( CString sClassName ) : Screen( sClassName )
|
|||||||
if( sClassName == INITIAL_SCREEN )
|
if( sClassName == INITIAL_SCREEN )
|
||||||
GAMESTATE->m_iNumTimesThroughAttract++;
|
GAMESTATE->m_iNumTimesThroughAttract++;
|
||||||
|
|
||||||
|
if( bResetGameState )
|
||||||
GAMESTATE->Reset();
|
GAMESTATE->Reset();
|
||||||
|
|
||||||
// We have to do initialization in the first update because this->GetElementName() won't
|
// We have to do initialization in the first update because this->GetElementName() won't
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
class ScreenAttract : public Screen
|
class ScreenAttract : public Screen
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ScreenAttract( CString sClassName );
|
ScreenAttract( CString sClassName, bool bResetGameState=true );
|
||||||
virtual ~ScreenAttract();
|
virtual ~ScreenAttract();
|
||||||
|
|
||||||
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI );
|
||||||
|
|||||||
@@ -176,10 +176,7 @@ void ScreenSystemLayer::RefreshCreditsMessages()
|
|||||||
Profile* pProfile = PROFILEMAN->GetProfile( (PlayerNumber)p );
|
Profile* pProfile = PROFILEMAN->GetProfile( (PlayerNumber)p );
|
||||||
if( pProfile )
|
if( pProfile )
|
||||||
{
|
{
|
||||||
if( !pProfile->m_sLastUsedHighScoreName.empty() )
|
sCredits = pProfile->GetDisplayName();
|
||||||
sCredits = pProfile->m_sLastUsedHighScoreName;
|
|
||||||
else
|
|
||||||
sCredits = pProfile->m_sName;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user