From 497f460b42a2a051255b3484601c374e8ddc7dd2 Mon Sep 17 00:00:00 2001 From: Jason Felds Date: Wed, 13 Jul 2011 04:19:39 -0400 Subject: [PATCH] Properly calculate radars for Couple charts. This does force another cache update. --- Docs/Changelog_sm5.txt | 1 + .../MechaTribe Assault/Mecha-Tribe Assault.ssc | 2 +- src/Song.cpp | 2 +- src/Steps.cpp | 16 ++++++++++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt index a6cc1ea453..81e01eebf0 100644 --- a/Docs/Changelog_sm5.txt +++ b/Docs/Changelog_sm5.txt @@ -12,6 +12,7 @@ StepMania 5.0 ????????? | 20110??? ---------- * [Difficulty] Allow ALL StepsTypes to use CustomDifficulty properly. There was some unfair targeting of Couple and Routine. [Wolfman2000] +* [Steps] Calculate accurate radar values for Couple charts. [Wolfman2000] 2011/07/12 ---------- diff --git a/Songs/StepMania 5/MechaTribe Assault/Mecha-Tribe Assault.ssc b/Songs/StepMania 5/MechaTribe Assault/Mecha-Tribe Assault.ssc index 00fa878817..a053075757 100644 --- a/Songs/StepMania 5/MechaTribe Assault/Mecha-Tribe Assault.ssc +++ b/Songs/StepMania 5/MechaTribe Assault/Mecha-Tribe Assault.ssc @@ -7022,7 +7022,7 @@ M0000 #CHARTSTYLE:Pad; #DIFFICULTY:Easy; #METER:3; -#RADARVALUES:0.506,0.724,1.000,0.838,0.000,147.000,117.000,88.000,0.000,48.000,0.000,0.000,0.000,0.506,0.724,1.000,0.838,0.000,147.000,117.000,88.000,0.000,48.000,0.000,0.000,0.000; +#RADARVALUES:0.253,0.362,0.095,0.419,0.000,132.000,10.000,44.000,0.000,0.000,0.000,0.000,0.000,0.253,0.362,0.095,0.419,0.000,132.000,10.000,44.000,0.000,0.000,0.000,0.000,0.000; #CREDIT:Jason Felds; #OFFSET:-0.028000; #BPMS:0.000000=180.000000 diff --git a/src/Song.cpp b/src/Song.cpp index 7ec55849c0..5a93c27078 100644 --- a/src/Song.cpp +++ b/src/Song.cpp @@ -41,7 +41,7 @@ * @brief The internal version of the cache for StepMania. * * Increment this value to invalidate the current cache. */ -const int FILE_CACHE_VERSION = 190; +const int FILE_CACHE_VERSION = 191; /** @brief How long does a song sample last by default? */ const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f; diff --git a/src/Steps.cpp b/src/Steps.cpp index 3ff6c97499..5961172f93 100644 --- a/src/Steps.cpp +++ b/src/Steps.cpp @@ -225,6 +225,22 @@ void Steps::CalculateRadarValues( float fMusicLengthSeconds ) for( size_t pn = 0; pn < min(vParts.size(), size_t(NUM_PLAYERS)); ++pn ) NoteDataUtil::CalculateRadarValues( vParts[pn], fMusicLengthSeconds, m_CachedRadarValues[pn] ); } + else if (GAMEMAN->GetStepsTypeInfo(this->m_StepsType).m_StepsTypeCategory == StepsTypeCategory_Couple) + { + NoteData p1 = tempNoteData; + // XXX: Assumption that couple will always have an even number of notes. + const int tracks = tempNoteData.GetNumTracks() / 2; + p1.SetNumTracks(tracks); + NoteDataUtil::CalculateRadarValues(p1, + fMusicLengthSeconds, + m_CachedRadarValues[PLAYER_1]); + // at this point, p2 is tempNoteData. + NoteDataUtil::ShiftTracks(tempNoteData, tracks); + tempNoteData.SetNumTracks(tracks); + NoteDataUtil::CalculateRadarValues(tempNoteData, + fMusicLengthSeconds, + m_CachedRadarValues[PLAYER_2]); + } else { NoteDataUtil::CalculateRadarValues( tempNoteData, fMusicLengthSeconds, m_CachedRadarValues[0] );