[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 );
@@ -105,10 +105,13 @@ static void GetTimingTags( vector<RString> &lines, TimingData timing )
w.Write( ss->m_iStartRow, ss->m_fStopSeconds );
w.Finish();
w.Init( "WARPS" );
FOREACH_CONST( WarpSegment, timing.m_WarpSegments, ws )
w.Write( ws->m_iStartRow, ws->m_fEndBeat );
w.Finish();
if( !bIsSong )
{
w.Init( "WARPS" );
FOREACH_CONST( WarpSegment, timing.m_WarpSegments, ws )
w.Write( ws->m_iStartRow, ws->m_fEndBeat );
w.Finish();
}
ASSERT( !timing.m_vTimeSignatureSegments.empty() );
w.Init( "TIMESIGNATURES" );
@@ -134,12 +137,12 @@ static void GetTimingTags( vector<RString> &lines, TimingData timing )
w.Finish();
}
static void WriteTimingTags( RageFile &f, const TimingData &timing )
static void WriteTimingTags( RageFile &f, const TimingData &timing, bool bIsSong = false )
{
vector<RString> lines;
GetTimingTags( lines, timing );
GetTimingTags( lines, timing, bIsSong );
f.PutLine( JoinLineList( lines ) );
@@ -210,7 +213,7 @@ static void WriteGlobalTags( RageFile &f, const Song &out )
break;
}
WriteTimingTags( f, out.m_SongTiming );
WriteTimingTags( f, out.m_SongTiming, true );
FOREACH_BackgroundLayer( b )
{
+3 -5
View File
@@ -3165,8 +3165,8 @@ void ScreenEdit::DisplayTimingMenu()
{
const MenuRowDef &hl = g_TimingDataLines[i];
if( ( hl.iRowCode == ScreenEdit::tickcount || hl.iRowCode == ScreenEdit::combo )
&& !GAMESTATE->m_bIsEditorStepTiming )
if( ( hl.iRowCode == ScreenEdit::tickcount || hl.iRowCode == ScreenEdit::combo
|| hl.iRowCode == ScreenEdit::warp ) && !GAMESTATE->m_bIsEditorStepTiming )
{
continue;
}
@@ -3179,7 +3179,6 @@ void ScreenEdit::DisplayTimingMenu()
// TODO: Better way of guaranteeing that we don't go out of bounds between timings.
int posLabel = ScreenEdit::tickcount;
int posWarp = ScreenEdit::combo;
g_TimingDataInformation.rows[beat_0_offset].SetOneUnthemedChoice( ssprintf("%.5f", pTime.m_fBeat0OffsetInSeconds) );
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[combo].SetOneUnthemedChoice( ssprintf("%d", pTime.GetComboAtBeat( fBeat ) ) );
g_TimingDataInformation.rows[warp].SetOneUnthemedChoice( ssprintf("%.5f", pTime.GetWarpAtBeat( fBeat ) ) );
posLabel = ScreenEdit::label;
posWarp = ScreenEdit::warp;
}
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 );
}