move DwiCompatibleStringToDifficulty from Difficulty to NotesLoaderDWI; make .sm and .sm-derived formats use DifficultyToString since NotesWriterSM/SMA/SSC should be writing normalized strings
This commit is contained in:
@@ -21,35 +21,6 @@ XToString( Difficulty );
|
||||
StringToX( Difficulty );
|
||||
LuaXType( Difficulty );
|
||||
|
||||
/* We prefer the above names; recognize a number of others, too. (They'll get
|
||||
* normalized when written to SMs, etc.) TODO: Format specific hacks should be
|
||||
* moved into the file loader for that format. We don't want to carry these
|
||||
* hacks forward to file formats that don't need them. */
|
||||
Difficulty DwiCompatibleStringToDifficulty( const RString& sDC )
|
||||
{
|
||||
RString s2 = sDC;
|
||||
s2.MakeLower();
|
||||
if( s2 == "beginner" ) return Difficulty_Beginner;
|
||||
else if( s2 == "easy" ) return Difficulty_Easy;
|
||||
else if( s2 == "basic" ) return Difficulty_Easy;
|
||||
else if( s2 == "light" ) return Difficulty_Easy;
|
||||
else if( s2 == "medium" ) return Difficulty_Medium;
|
||||
else if( s2 == "another" ) return Difficulty_Medium;
|
||||
else if( s2 == "trick" ) return Difficulty_Medium;
|
||||
else if( s2 == "standard" ) return Difficulty_Medium;
|
||||
else if( s2 == "difficult") return Difficulty_Medium;
|
||||
else if( s2 == "hard" ) return Difficulty_Hard;
|
||||
else if( s2 == "ssr" ) return Difficulty_Hard;
|
||||
else if( s2 == "maniac" ) return Difficulty_Hard;
|
||||
else if( s2 == "heavy" ) return Difficulty_Hard;
|
||||
else if( s2 == "smaniac" ) return Difficulty_Challenge;
|
||||
else if( s2 == "challenge" ) return Difficulty_Challenge;
|
||||
else if( s2 == "expert" ) return Difficulty_Challenge;
|
||||
else if( s2 == "oni" ) return Difficulty_Challenge;
|
||||
else if( s2 == "edit" ) return Difficulty_Edit;
|
||||
else return Difficulty_Invalid;
|
||||
}
|
||||
|
||||
const RString &CourseDifficultyToLocalizedString( CourseDifficulty x )
|
||||
{
|
||||
static auto_ptr<LocalizedString> g_CourseDifficultyName[NUM_Difficulty];
|
||||
|
||||
@@ -22,8 +22,6 @@ const RString& DifficultyToString( Difficulty dc );
|
||||
Difficulty StringToDifficulty( const RString& sDC );
|
||||
LuaDeclareType( Difficulty );
|
||||
|
||||
Difficulty DwiCompatibleStringToDifficulty( const RString& sDC );
|
||||
|
||||
typedef Difficulty CourseDifficulty;
|
||||
const int NUM_CourseDifficulty = NUM_Difficulty;
|
||||
/** @brief Loop through the shown course difficulties. */
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "GameInput.h"
|
||||
#include "NotesLoader.h"
|
||||
#include "PrefsManager.h"
|
||||
#include "Difficulty.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
@@ -140,6 +141,33 @@ static bool Is192( const RString &sStepData, size_t pos )
|
||||
/** @brief All DWI files use 4 beats per measure. */
|
||||
const int BEATS_PER_MEASURE = 4;
|
||||
|
||||
/* We prefer the normal names; recognize a number of others, too. (They'll get
|
||||
* normalized when written to SMs, etc.) */
|
||||
Difficulty DwiCompatibleStringToDifficulty( const RString& sDC )
|
||||
{
|
||||
RString s2 = sDC;
|
||||
s2.MakeLower();
|
||||
if( s2 == "beginner" ) return Difficulty_Beginner;
|
||||
else if( s2 == "easy" ) return Difficulty_Easy;
|
||||
else if( s2 == "basic" ) return Difficulty_Easy;
|
||||
else if( s2 == "light" ) return Difficulty_Easy;
|
||||
else if( s2 == "medium" ) return Difficulty_Medium;
|
||||
else if( s2 == "another" ) return Difficulty_Medium;
|
||||
else if( s2 == "trick" ) return Difficulty_Medium;
|
||||
else if( s2 == "standard" ) return Difficulty_Medium;
|
||||
else if( s2 == "difficult") return Difficulty_Medium;
|
||||
else if( s2 == "hard" ) return Difficulty_Hard;
|
||||
else if( s2 == "ssr" ) return Difficulty_Hard;
|
||||
else if( s2 == "maniac" ) return Difficulty_Hard;
|
||||
else if( s2 == "heavy" ) return Difficulty_Hard;
|
||||
else if( s2 == "smaniac" ) return Difficulty_Challenge;
|
||||
else if( s2 == "challenge" ) return Difficulty_Challenge;
|
||||
else if( s2 == "expert" ) return Difficulty_Challenge;
|
||||
else if( s2 == "oni" ) return Difficulty_Challenge;
|
||||
else if( s2 == "edit" ) return Difficulty_Edit;
|
||||
else return Difficulty_Invalid;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Look through the notes tag to extract the data.
|
||||
* @param sMode the steps type.
|
||||
|
||||
@@ -45,7 +45,7 @@ void SMLoader::LoadFromSMTokens(
|
||||
out.m_StepsType = GAMEMAN->StringToStepsType( sStepsType );
|
||||
out.SetDescription( sDescription );
|
||||
out.SetCredit( sDescription ); // this is often used for both.
|
||||
out.SetDifficulty( DwiCompatibleStringToDifficulty(sDifficulty) );
|
||||
out.SetDifficulty( StringToDifficulty(sDifficulty) );
|
||||
|
||||
// Handle hacks that originated back when StepMania didn't have
|
||||
// Difficulty_Challenge. (At least v1.64, possibly v3.0 final...)
|
||||
|
||||
@@ -42,7 +42,7 @@ void SMALoader::LoadFromSMATokens(
|
||||
out.m_StepsType = GAMEMAN->StringToStepsType( sStepsType );
|
||||
out.SetDescription( sDescription );
|
||||
out.SetCredit( sDescription ); // this is often used for both.
|
||||
out.SetDifficulty( DwiCompatibleStringToDifficulty(sDifficulty) );
|
||||
out.SetDifficulty( StringToDifficulty(sDifficulty) );
|
||||
|
||||
sDescription.MakeLower();
|
||||
|
||||
|
||||
@@ -709,7 +709,7 @@ bool SSCLoader::LoadFromSSCFile( const RString &sPath, Song &out, bool bFromCach
|
||||
|
||||
else if( sValueName=="DIFFICULTY" )
|
||||
{
|
||||
pNewNotes->SetDifficulty( DwiCompatibleStringToDifficulty( sParams[1] ) );
|
||||
pNewNotes->SetDifficulty( StringToDifficulty( sParams[1] ) );
|
||||
}
|
||||
|
||||
else if( sValueName=="METER" )
|
||||
@@ -980,7 +980,7 @@ bool SSCLoader::LoadEditFromMsd( const MsdFile &msd, const RString &sEditFilePat
|
||||
|
||||
else if( sValueName=="DIFFICULTY" )
|
||||
{
|
||||
pNewNotes->SetDifficulty( DwiCompatibleStringToDifficulty( sParams[1] ) );
|
||||
pNewNotes->SetDifficulty( StringToDifficulty( sParams[1] ) );
|
||||
bSSCFormat = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user