[splittiming] The .edit files matter too.
Maybe we need a new extension for edits.
This commit is contained in:
+49
-21
@@ -684,6 +684,8 @@ bool SSCLoader::LoadEditFromMsd( const MsdFile &msd, const RString &sEditFilePat
|
|||||||
Song* pSong = NULL;
|
Song* pSong = NULL;
|
||||||
Steps* pNewNotes = NULL;
|
Steps* pNewNotes = NULL;
|
||||||
bool bSSCFormat = false;
|
bool bSSCFormat = false;
|
||||||
|
bool bHasOwnTiming = false;
|
||||||
|
TimingData stepsTiming;
|
||||||
|
|
||||||
for( unsigned i=0; i<msd.GetNumValues(); i++ )
|
for( unsigned i=0; i<msd.GetNumValues(); i++ )
|
||||||
{
|
{
|
||||||
@@ -774,32 +776,54 @@ bool SSCLoader::LoadEditFromMsd( const MsdFile &msd, const RString &sEditFilePat
|
|||||||
bSSCFormat = true;
|
bSSCFormat = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TimingData for Steps isn't set yet, but still prepare for it.
|
|
||||||
else if( sValueName=="BPMS" )
|
else if( sValueName=="BPMS" )
|
||||||
{
|
{
|
||||||
bSSCFormat = true;
|
if( SMLoader::ProcessBPMs(stepsTiming, sParams[1]) )
|
||||||
}
|
bHasOwnTiming = true;
|
||||||
else if( sValueName=="STOPS" )
|
|
||||||
{
|
|
||||||
bSSCFormat = true;
|
|
||||||
}
|
|
||||||
else if( sValueName=="DELAYS" )
|
|
||||||
{
|
|
||||||
bSSCFormat = true;
|
|
||||||
}
|
|
||||||
else if( sValueName=="TIMESIGNATURES" )
|
|
||||||
{
|
|
||||||
bSSCFormat = true;
|
|
||||||
}
|
|
||||||
else if( sValueName=="TICKCOUNTS" )
|
|
||||||
{
|
|
||||||
bSSCFormat = true;
|
|
||||||
}
|
|
||||||
else if( sValueName=="COMBOS" )
|
|
||||||
{
|
|
||||||
bSSCFormat = true;
|
bSSCFormat = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="STOPS" )
|
||||||
|
{
|
||||||
|
SMLoader::ProcessStops(stepsTiming, sParams[1]);
|
||||||
|
bSSCFormat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="DELAYS" )
|
||||||
|
{
|
||||||
|
SMLoader::ProcessDelays(stepsTiming, sParams[1]);
|
||||||
|
bSSCFormat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="TIMESIGNATURES" )
|
||||||
|
{
|
||||||
|
SMLoader::ProcessTimeSignatures(stepsTiming, sParams[1]);
|
||||||
|
bSSCFormat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="TICKCOUNTS" )
|
||||||
|
{
|
||||||
|
SMLoader::ProcessTickcounts(stepsTiming, sParams[1]);
|
||||||
|
bSSCFormat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="COMBOS" )
|
||||||
|
{
|
||||||
|
ProcessCombos(stepsTiming, sParams[1]);
|
||||||
|
bSSCFormat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="WARPS" )
|
||||||
|
{
|
||||||
|
ProcessWarps(stepsTiming, sParams[1]);
|
||||||
|
bSSCFormat = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
else if( sValueName=="LABELS" )
|
||||||
|
{
|
||||||
|
ProcessLabels(stepsTiming, sParams[1]);
|
||||||
|
bSSCFormat = true;
|
||||||
|
}
|
||||||
else if( sValueName=="NOTES" )
|
else if( sValueName=="NOTES" )
|
||||||
{
|
{
|
||||||
if( pSong == NULL )
|
if( pSong == NULL )
|
||||||
@@ -819,6 +843,10 @@ bool SSCLoader::LoadEditFromMsd( const MsdFile &msd, const RString &sEditFilePat
|
|||||||
|
|
||||||
if( bSSCFormat )
|
if( bSSCFormat )
|
||||||
{
|
{
|
||||||
|
if ( bHasOwnTiming )
|
||||||
|
{
|
||||||
|
pNewNotes->m_Timing = stepsTiming;
|
||||||
|
}
|
||||||
pNewNotes->SetSMNoteData( sParams[1] );
|
pNewNotes->SetSMNoteData( sParams[1] );
|
||||||
pNewNotes->TidyUpData();
|
pNewNotes->TidyUpData();
|
||||||
pSong->AddSteps( pNewNotes );
|
pSong->AddSteps( pNewNotes );
|
||||||
|
|||||||
Reference in New Issue
Block a user