diff --git a/stepmania/src/Screen.cpp b/stepmania/src/Screen.cpp index 6b7447cec5..3f874c8e23 100644 --- a/stepmania/src/Screen.cpp +++ b/stepmania/src/Screen.cpp @@ -309,6 +309,23 @@ Screen* Screen::Create( CString sClassName ) if( !sClassName.CompareNoCase("ScreenWarning") ) sClassName = "ScreenAttract@ScreenWarning"; + if( !sClassName.CompareNoCase("ScreenEvaluationStage") ) + sClassName = "ScreenEvaluation@ScreenEvaluationStage"; + if( !sClassName.CompareNoCase("ScreenEvaluationSummary") ) + sClassName = "ScreenEvaluation@ScreenEvaluationSummary"; + if( !sClassName.CompareNoCase("ScreenEvaluationNonstop") ) + sClassName = "ScreenEvaluation@ScreenEvaluationNonstop"; + if( !sClassName.CompareNoCase("ScreenEvaluationOni") ) + sClassName = "ScreenEvaluation@ScreenEvaluationOni"; + if( !sClassName.CompareNoCase("ScreenEvaluationEndless") ) + sClassName = "ScreenEvaluation@ScreenEvaluationEndless"; + if( !sClassName.CompareNoCase("ScreenEvaluationEndless") ) + sClassName = "ScreenEvaluation@ScreenEvaluationEndless"; + if( !sClassName.CompareNoCase("ScreenEvaluationBattle") ) + sClassName = "ScreenEvaluation@ScreenEvaluationBattle"; + if( !sClassName.CompareNoCase("ScreenEvaluationRave") ) + sClassName = "ScreenEvaluation@ScreenEvaluationRave"; + /* "ScreenCompany@ScreenOtherCompany" loads ScreenCompany with the * asset "ScreenOtherCompany", so (if it supports it) it'll use * metric, graphic, etc. names starting with "ScreenOtherCompany". */ @@ -331,13 +348,7 @@ Screen* Screen::Create( CString sClassName ) IF_RETURN( ScreenCaution ); IF_RETURN( ScreenEdit ); IF_RETURN( ScreenEditMenu ); - IF_RETURN( ScreenEvaluationStage ); - IF_RETURN( ScreenEvaluationSummary ); - IF_RETURN( ScreenEvaluationNonstop ); - IF_RETURN( ScreenEvaluationOni ); - IF_RETURN( ScreenEvaluationEndless ); - IF_RETURN( ScreenEvaluationBattle ); - IF_RETURN( ScreenEvaluationRave ); + IF_RETURN( ScreenEvaluation ); IF_RETURN( ScreenEz2SelectPlayer ); IF_RETURN( ScreenGameOver ); IF_RETURN( ScreenGameplay ); diff --git a/stepmania/src/ScreenEvaluation.cpp b/stepmania/src/ScreenEvaluation.cpp index dd40da41a7..548bdedcad 100644 --- a/stepmania/src/ScreenEvaluation.cpp +++ b/stepmania/src/ScreenEvaluation.cpp @@ -53,6 +53,7 @@ const char* JUDGE_STRING[NUM_JUDGE_LINES] = { "Marvelous", "Perfect", "Great", " #define SHOW_JUDGMENT( l ) THEME->GetMetricB(m_sName,ssprintf("Show%s",JUDGE_STRING[l])) #define SHOW_SCORE_AREA THEME->GetMetricB(m_sName,"ShowScoreArea") #define SHOW_TIME_AREA THEME->GetMetricB(m_sName,"ShowTimeArea") +#define TYPE THEME->GetMetric (m_sName,"Type") const ScreenMessage SM_GoToSelectCourse = ScreenMessage(SM_User+3); @@ -61,7 +62,7 @@ const ScreenMessage SM_GoToEndScreen = ScreenMessage(SM_User+5); const ScreenMessage SM_PlayCheer = ScreenMessage(SM_User+6); -ScreenEvaluation::ScreenEvaluation( CString sClassName, Type type ) : Screen(sClassName) +ScreenEvaluation::ScreenEvaluation( CString sClassName ) : Screen(sClassName) { // // debugging @@ -83,8 +84,15 @@ ScreenEvaluation::ScreenEvaluation( CString sClassName, Type type ) : Screen(sCl LOG->Trace( "ScreenEvaluation::ScreenEvaluation()" ); m_sName = sClassName; - m_Type = type; - + if( !TYPE.CompareNoCase("stage") ) + m_Type = stage; + else if( !TYPE.CompareNoCase("summary") ) + m_Type = summary; + else if( !TYPE.CompareNoCase("course") ) + m_Type = course; + else + RageException::Throw("Unknown evaluation type \"%s\"", TYPE.c_str() ); + int p; // diff --git a/stepmania/src/ScreenEvaluation.h b/stepmania/src/ScreenEvaluation.h index 32adcbca4d..d05e0c4aa1 100644 --- a/stepmania/src/ScreenEvaluation.h +++ b/stepmania/src/ScreenEvaluation.h @@ -1,3 +1,6 @@ +#ifndef SCREEN_EVALUATION_H +#define SCREEN_EVALUATION_H + /* ----------------------------------------------------------------------------- Class: ScreenEvaluation @@ -30,7 +33,7 @@ class ScreenEvaluation : public Screen { public: enum Type { stage, summary, course }; - ScreenEvaluation( CString sClassName, Type type ); + ScreenEvaluation( CString sClassName ); virtual void Update( float fDeltaTime ); virtual void DrawPrimitives(); virtual void Input( const DeviceInput& DeviceI, const InputEventType type, const GameInput &GameI, const MenuInput &MenuI, const StyleInput &StyleI ); @@ -103,46 +106,4 @@ protected: Sprite m_sprTryExtraStage; }; -class ScreenEvaluationStage : public ScreenEvaluation -{ -public: - ScreenEvaluationStage( CString sClassName ) : ScreenEvaluation(sClassName,ScreenEvaluation::stage) {}; -}; - -class ScreenEvaluationSummary : public ScreenEvaluation -{ -public: - ScreenEvaluationSummary( CString sClassName ) : ScreenEvaluation(sClassName,ScreenEvaluation::summary) {}; -}; - -class ScreenEvaluationNonstop : public ScreenEvaluation -{ -public: - ScreenEvaluationNonstop( CString sClassName ) : ScreenEvaluation(sClassName,ScreenEvaluation::course) {}; -}; - -class ScreenEvaluationOni : public ScreenEvaluation -{ -public: - ScreenEvaluationOni( CString sClassName ) : ScreenEvaluation(sClassName, ScreenEvaluation::course) {}; -}; - -class ScreenEvaluationEndless : public ScreenEvaluation -{ -public: - ScreenEvaluationEndless( CString sClassName ) : ScreenEvaluation(sClassName, ScreenEvaluation::course) {}; -}; - -class ScreenEvaluationBattle : public ScreenEvaluation -{ -public: - ScreenEvaluationBattle( CString sClassName ) : ScreenEvaluation(sClassName, ScreenEvaluation::stage) {}; -}; - -class ScreenEvaluationRave : public ScreenEvaluation -{ -public: - ScreenEvaluationRave( CString sClassName ) : ScreenEvaluation(sClassName,ScreenEvaluation::stage) {}; -}; - - +#endif