Skip to content

Commit 18657d3

Browse files
use a conversion map to reconcile keys rather than looping through things like an idiot
1 parent 19eeeb4 commit 18657d3

File tree

3 files changed

+4
-8
lines changed

3 files changed

+4
-8
lines changed

src/SongManager.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -361,12 +361,8 @@ string SongManager::ReconcileBustedKeys(const string& ck) {
361361
if (StepsByKey.count(ck))
362362
return ck;
363363

364-
FOREACHUM(string, Steps*, StepsByKey, i)
365-
for (auto& n : i->second->bustedkeys)
366-
if (ck == n) {
367-
LOG->Trace("Reconciled key for %s to %s", ck.c_str(), i->second->GetChartKey().c_str());
368-
return i->second->GetChartKey();
369-
}
364+
if (keyconversionmap.count(ck))
365+
return keyconversionmap[ck];
370366
return ck;
371367
}
372368

src/SongManager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ class SongManager
194194
string activeplaylist;
195195
string playlistcourse;
196196
string ReconcileBustedKeys(const string& ck);
197+
map<string, string> keyconversionmap;
197198

198199
map<string, vector<Song*>> groupderps;
199200
protected:

src/Steps.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -386,8 +386,7 @@ void Steps::CalcEtternaMetadata() {
386386
stuffnthings = MinaSDCalc(GetNoteData().SerializeNoteData(etaner), GetNoteData().GetNumTracks(), 0.93f, 1.f, GetTimingData()->HasWarps());
387387
ChartKey = GenerateChartKey(*m_pNoteData, GetTimingData());
388388
for (int i = 0; i < 8; ++i)
389-
bustedkeys.emplace_back(GenerateBustedChartKey(*m_pNoteData, GetTimingData(), i));
390-
389+
SONGMAN->keyconversionmap.emplace(GenerateBustedChartKey(*m_pNoteData, GetTimingData(), i), ChartKey);
391390

392391
m_pNoteData->UnsetNerv();
393392
m_pNoteData->UnsetSerializedNoteData();

0 commit comments

Comments
 (0)