diff --git a/src/NotesLoaderDWI.cpp b/src/NotesLoaderDWI.cpp index 4ffb97d1cc..82d200b390 100644 --- a/src/NotesLoaderDWI.cpp +++ b/src/NotesLoaderDWI.cpp @@ -743,6 +743,19 @@ bool DWILoader::LoadFromDir( const RString &sPath_, Song &out, set &Bla // do nothing. We don't care about this value name } } + + if (out.m_sArtist == "The Dancing Monkeys Project" && out.m_sMainTitle.find_first_of('-') != string::npos) + { + // Dancing Monkeys had a bug/feature where the artist was replaced. Restore it. + vector titleParts; + split(out.m_sMainTitle, "-", titleParts); + out.m_sArtist = titleParts.front; + Trim(out.m_sArtist); + titleParts.erase(titleParts.begin()); + out.m_sMainTitle = join("-", titleParts); + Trim(out.m_sMainTitle); + } + return true; } diff --git a/src/NotesLoaderSM.cpp b/src/NotesLoaderSM.cpp index 17e6f55162..23e0a25cab 100644 --- a/src/NotesLoaderSM.cpp +++ b/src/NotesLoaderSM.cpp @@ -965,6 +965,18 @@ bool SMLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCache LOG->UserLog( "Song file", sPath, "has an unexpected value named \"%s\".", sValueName.c_str() ); } + if (out.m_sArtist == "The Dancing Monkeys Project" && out.m_sMainTitle.find_first_of('-') != string::npos) + { + // Dancing Monkeys had a bug/feature where the artist was replaced. Restore it. + vector titleParts; + split(out.m_sMainTitle, "-", titleParts); + out.m_sArtist = titleParts.front; + Trim(out.m_sArtist); + titleParts.erase(titleParts.begin()); + out.m_sMainTitle = join("-", titleParts); + Trim(out.m_sMainTitle); + } + // Turn negative time changes into warps ProcessBPMsAndStops(out.m_SongTiming, vBPMChanges, vStops); out.m_SongTiming.SortSegments( SEGMENT_WARP );