From 068bb826b611ba37126b6b0ca1b391fc80205160 Mon Sep 17 00:00:00 2001 From: Andrew Wong Date: Fri, 8 Aug 2003 10:01:55 +0000 Subject: [PATCH] make difficulties shown on player options screen theme-dependent --- stepmania/src/ScreenPlayerOptions.cpp | 36 +++++++++++++++++++++++++++ stepmania/src/ScreenPlayerOptions.h | 2 ++ 2 files changed, 38 insertions(+) diff --git a/stepmania/src/ScreenPlayerOptions.cpp b/stepmania/src/ScreenPlayerOptions.cpp index 99273f5dca..bb7f16fe05 100644 --- a/stepmania/src/ScreenPlayerOptions.cpp +++ b/stepmania/src/ScreenPlayerOptions.cpp @@ -121,6 +121,10 @@ void ScreenPlayerOptions::ImportOptions() { CString s = vNotes[i]->GetDescription(); s.MakeUpper(); + + // convert to theme-defined values + s = ConvertParamToThemeDifficulty(s); + m_OptionRow[PO_STEP].choices.push_back( s ); } } @@ -432,3 +436,35 @@ void ScreenPlayerOptions::HandleScreenMessage( const ScreenMessage SM ) } ScreenOptions::HandleScreenMessage( SM ); } + +CString ScreenPlayerOptions::ConvertParamToThemeDifficulty( + const CString &in ) const +{ + // inefficient, could optimize +#define BEGINNER_DESCRIPTION THEME->GetMetric("ScreenPlayerOptions","Beginner") +#define EASY_DESCRIPTION THEME->GetMetric("ScreenPlayerOptions","Easy") +#define MEDIUM_DESCRIPTION THEME->GetMetric("ScreenPlayerOptions","Medium") +#define HARD_DESCRIPTION THEME->GetMetric("ScreenPlayerOptions","Hard") +#define CHALLENGE_DESCRIPTION THEME->GetMetric("ScreenPlayerOptions","Challenge") + + if (in == "BEGINNER") return BEGINNER_DESCRIPTION; // Extreme + + if (in == "BASIC") return EASY_DESCRIPTION; // 3rd + if (in == "LIGHT") return EASY_DESCRIPTION; // MAX + + if (in == "ANOTHER") return MEDIUM_DESCRIPTION; // 3rd + if (in == "STANDARD") return MEDIUM_DESCRIPTION; // MAX. Note DDRUSA uses this for standard, but its unlikely + if (in == "TRICK") return MEDIUM_DESCRIPTION; // 4th/5th + if (in == "DIFFICULT") return MEDIUM_DESCRIPTION; // DDRUSA, unlikely + + if (in == "SSR") return HARD_DESCRIPTION; // 3rd + if (in == "MANIAC") return HARD_DESCRIPTION; // pre-MAX + if (in == "HEAVY") return HARD_DESCRIPTION; // MAX + if (in == "EXPERT") return HARD_DESCRIPTION; // Euromix + + if (in == "SMANIAC") return CHALLENGE_DESCRIPTION; // 4th + if (in == "CHALLENGE") return CHALLENGE_DESCRIPTION; // MAX + if (in == "ONI") return CHALLENGE_DESCRIPTION; // Extreme + + return in; // something else +} \ No newline at end of file diff --git a/stepmania/src/ScreenPlayerOptions.h b/stepmania/src/ScreenPlayerOptions.h index 2e5af7213a..4a10ccfc1c 100644 --- a/stepmania/src/ScreenPlayerOptions.h +++ b/stepmania/src/ScreenPlayerOptions.h @@ -32,6 +32,8 @@ private: void GoToNextState(); void GoToPrevState(); + CString ConvertParamToThemeDifficulty( const CString &in ) const; + bool m_bAcceptedChoices; bool m_bGoToOptions; Sprite m_sprOptionsMessage;