[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:
+11
-8
@@ -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
@@ -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 );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user