[splittiming] Song Timings don't get warps.

Song Timing is meant for background changes
and emergency fallback Step Timing. Warps
do not belong here.
This commit is contained in:
Jason Felds
2011-05-13 15:38:21 -04:00
parent 9e747aa84b
commit e95ac1eef0
2 changed files with 14 additions and 13 deletions
+11 -8
View File
@@ -82,7 +82,7 @@ struct TimingTagWriter {
}; };
static void GetTimingTags( vector<RString> &lines, TimingData timing ) static void GetTimingTags( vector<RString> &lines, TimingData timing, bool bIsSong = false )
{ {
TimingTagWriter w ( &lines ); TimingTagWriter w ( &lines );
@@ -105,10 +105,13 @@ static void GetTimingTags( vector<RString> &lines, TimingData timing )
w.Write( ss->m_iStartRow, ss->m_fStopSeconds ); w.Write( ss->m_iStartRow, ss->m_fStopSeconds );
w.Finish(); w.Finish();
w.Init( "WARPS" ); if( !bIsSong )
FOREACH_CONST( WarpSegment, timing.m_WarpSegments, ws ) {
w.Write( ws->m_iStartRow, ws->m_fEndBeat ); w.Init( "WARPS" );
w.Finish(); FOREACH_CONST( WarpSegment, timing.m_WarpSegments, ws )
w.Write( ws->m_iStartRow, ws->m_fEndBeat );
w.Finish();
}
ASSERT( !timing.m_vTimeSignatureSegments.empty() ); ASSERT( !timing.m_vTimeSignatureSegments.empty() );
w.Init( "TIMESIGNATURES" ); w.Init( "TIMESIGNATURES" );
@@ -134,12 +137,12 @@ static void GetTimingTags( vector<RString> &lines, TimingData timing )
w.Finish(); w.Finish();
} }
static void WriteTimingTags( RageFile &f, const TimingData &timing ) static void WriteTimingTags( RageFile &f, const TimingData &timing, bool bIsSong = false )
{ {
vector<RString> lines; vector<RString> lines;
GetTimingTags( lines, timing ); GetTimingTags( lines, timing, bIsSong );
f.PutLine( JoinLineList( lines ) ); f.PutLine( JoinLineList( lines ) );
@@ -210,7 +213,7 @@ static void WriteGlobalTags( RageFile &f, const Song &out )
break; break;
} }
WriteTimingTags( f, out.m_SongTiming ); WriteTimingTags( f, out.m_SongTiming, true );
FOREACH_BackgroundLayer( b ) FOREACH_BackgroundLayer( b )
{ {
+3 -5
View File
@@ -3165,8 +3165,8 @@ void ScreenEdit::DisplayTimingMenu()
{ {
const MenuRowDef &hl = g_TimingDataLines[i]; const MenuRowDef &hl = g_TimingDataLines[i];
if( ( hl.iRowCode == ScreenEdit::tickcount || hl.iRowCode == ScreenEdit::combo ) if( ( hl.iRowCode == ScreenEdit::tickcount || hl.iRowCode == ScreenEdit::combo
&& !GAMESTATE->m_bIsEditorStepTiming ) || hl.iRowCode == ScreenEdit::warp ) && !GAMESTATE->m_bIsEditorStepTiming )
{ {
continue; continue;
} }
@@ -3179,7 +3179,6 @@ void ScreenEdit::DisplayTimingMenu()
// TODO: Better way of guaranteeing that we don't go out of bounds between timings. // TODO: Better way of guaranteeing that we don't go out of bounds between timings.
int posLabel = ScreenEdit::tickcount; int posLabel = ScreenEdit::tickcount;
int posWarp = ScreenEdit::combo;
g_TimingDataInformation.rows[beat_0_offset].SetOneUnthemedChoice( ssprintf("%.5f", pTime.m_fBeat0OffsetInSeconds) ); g_TimingDataInformation.rows[beat_0_offset].SetOneUnthemedChoice( ssprintf("%.5f", pTime.m_fBeat0OffsetInSeconds) );
g_TimingDataInformation.rows[bpm].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetBPMAtBeat( fBeat ) ) ); g_TimingDataInformation.rows[bpm].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetBPMAtBeat( fBeat ) ) );
@@ -3192,11 +3191,10 @@ void ScreenEdit::DisplayTimingMenu()
{ {
g_TimingDataInformation.rows[tickcount].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTickcountAtBeat( fBeat ) ) ); g_TimingDataInformation.rows[tickcount].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTickcountAtBeat( fBeat ) ) );
g_TimingDataInformation.rows[combo].SetOneUnthemedChoice( ssprintf("%d", pTime.GetComboAtBeat( fBeat ) ) ); g_TimingDataInformation.rows[combo].SetOneUnthemedChoice( ssprintf("%d", pTime.GetComboAtBeat( fBeat ) ) );
g_TimingDataInformation.rows[warp].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetWarpAtBeat( fBeat ) ) );
posLabel = ScreenEdit::label; posLabel = ScreenEdit::label;
posWarp = ScreenEdit::warp;
} }
g_TimingDataInformation.rows[posLabel].SetOneUnthemedChoice( pTime.GetLabelAtBeat( fBeat ).c_str() ); g_TimingDataInformation.rows[posLabel].SetOneUnthemedChoice( pTime.GetLabelAtBeat( fBeat ).c_str() );
g_TimingDataInformation.rows[posWarp].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetWarpAtBeat( fBeat ) ) );
EditMiniMenu( &g_TimingDataInformation, SM_BackFromTimingDataInformation ); EditMiniMenu( &g_TimingDataInformation, SM_BackFromTimingDataInformation );
} }