diff --git a/stepmania/src/NotesLoaderDWI.cpp b/stepmania/src/NotesLoaderDWI.cpp index 3a891bb63b..2ae5ec4cec 100644 --- a/stepmania/src/NotesLoaderDWI.cpp +++ b/stepmania/src/NotesLoaderDWI.cpp @@ -367,6 +367,7 @@ bool DWILoader::LoadFromDWIFile( const RString &sPath, Song &out ) LOG->UserLog( "Song file", sPath, "couldn't be opened: %s", msd.GetError().c_str() ); return false; } + m_sTempSMTitle = m_sTempSMSubTitle = m_sTempSMArtist = m_sTempTitle = m_sTempSubTitle = m_sTempArtist = ""; for( unsigned i=0; iUserLog( "Song file", sPath, "has an invalid BPM change at beat %f, BPM %f.", NoteRowToBeat(0), fBPM ); } + else if( 0==stricmp(sValueName,"DISPLAYBPM") ) { // #DISPLAYBPM:[xxx..xxx]|[xxx]|[*]; @@ -549,6 +569,30 @@ bool DWILoader::LoadFromDWIFile( const RString &sPath, Song &out ) ; } + if ( m_sTempSMTitle != "" ) + { + out.m_sMainTitle = m_sTempSMTitle; + out.m_sMainTitleTranslit = m_sTempTitle; + } + else + out.m_sMainTitle = m_sTempTitle; + + if ( m_sTempSMSubTitle != "" ) + { + out.m_sSubTitle = m_sTempSMSubTitle; + out.m_sSubTitleTranslit = m_sTempSubTitle; + } + else + out.m_sSubTitle = m_sTempSubTitle; + + if ( m_sTempSMArtist != "" ) + { + out.m_sArtist = m_sTempSMArtist; + out.m_sArtistTranslit = m_sTempArtist; + } + else + out.m_sArtist = m_sTempArtist; + return true; } diff --git a/stepmania/src/NotesLoaderDWI.h b/stepmania/src/NotesLoaderDWI.h index 86466a6efe..cf48414bad 100644 --- a/stepmania/src/NotesLoaderDWI.h +++ b/stepmania/src/NotesLoaderDWI.h @@ -29,6 +29,13 @@ public: void GetApplicableFiles( const RString &sPath, vector &out ); bool Loadable( const RString &sPath ); bool LoadFromDir( const RString &sPath, Song &out ); +private: + RString m_sTempSMTitle; + RString m_sTempSMSubTitle; + RString m_sTempSMArtist; + RString m_sTempTitle; + RString m_sTempSubTitle; + RString m_sTempArtist; }; #endif