diff --git a/src/NotesLoaderBMS.cpp b/src/NotesLoaderBMS.cpp index 885b5df706..bd97e63d9b 100644 --- a/src/NotesLoaderBMS.cpp +++ b/src/NotesLoaderBMS.cpp @@ -667,7 +667,7 @@ static bool LoadFromBMSFile( const RString &sPath, const NameToData_t &mapNameTo float fFreezeSecs = fBeats / fBPS; StopSegment * newSeg = new StopSegment( fBeat, fFreezeSecs ); - out.m_Timing.AddSegment( SEGMENT_STOP_DELAY, newSeg ); + out.m_Timing.AddSegment( SEGMENT_STOP, newSeg ); LOG->Trace( "Inserting new Freeze at beat %f, secs %f", fBeat, newSeg->GetPause() ); } else diff --git a/src/NotesLoaderDWI.cpp b/src/NotesLoaderDWI.cpp index 242108bbe3..c0ca9e55d7 100644 --- a/src/NotesLoaderDWI.cpp +++ b/src/NotesLoaderDWI.cpp @@ -651,7 +651,7 @@ bool DWILoader::LoadFromDir( const RString &sPath_, Song &out, set &Bla int iFreezeRow = BeatToNoteRow( StringToFloat(arrayFreezeValues[0]) / 4.0f ); float fFreezeSeconds = StringToFloat( arrayFreezeValues[1] ) / 1000.0f; - out.m_SongTiming.AddSegment( SEGMENT_STOP_DELAY, new StopSegment(iFreezeRow, fFreezeSeconds) ); + out.m_SongTiming.AddSegment( SEGMENT_STOP, new StopSegment(iFreezeRow, fFreezeSeconds) ); // LOG->Trace( "Adding a freeze segment: beat: %f, seconds = %f", fFreezeBeat, fFreezeSeconds ); } } diff --git a/src/NotesLoaderJson.cpp b/src/NotesLoaderJson.cpp index 4021b0e85e..4d3b41f85b 100644 --- a/src/NotesLoaderJson.cpp +++ b/src/NotesLoaderJson.cpp @@ -29,7 +29,7 @@ static void Deserialize(TimingSegment &seg_, const Json::Value &root) static_cast(seg)->SetBPM(fBPM); break; } - case SEGMENT_STOP_DELAY: + case SEGMENT_STOP: { float fStop = root["Seconds"].asDouble(); static_cast(seg)->SetPause(fStop); @@ -42,7 +42,7 @@ static void Deserialize(TimingSegment &seg_, const Json::Value &root) static void Deserialize(TimingData &td, const Json::Value &root) { JsonUtil::DeserializeVectorPointers( td.allTimingSegments[SEGMENT_BPM], Deserialize, root["BpmSegments"] ); - JsonUtil::DeserializeVectorPointers( td.allTimingSegments[SEGMENT_STOP_DELAY], Deserialize, root["StopSegments"] ); + JsonUtil::DeserializeVectorPointers( td.allTimingSegments[SEGMENT_STOP], Deserialize, root["StopSegments"] ); } static void Deserialize(LyricSegment &o, const Json::Value &root) diff --git a/src/NotesLoaderPMS.cpp b/src/NotesLoaderPMS.cpp index ca4c672091..cfedf673d4 100644 --- a/src/NotesLoaderPMS.cpp +++ b/src/NotesLoaderPMS.cpp @@ -723,7 +723,7 @@ static void ReadGlobalTags( const RString &sPath, const NameToData_t &mapNameToD float fFreezeSecs = fBeats / fBPS; StopSegment * newSeg = new StopSegment( fBeat, fFreezeSecs ); - out.m_SongTiming.AddSegment( SEGMENT_STOP_DELAY, newSeg ); + out.m_SongTiming.AddSegment( SEGMENT_STOP, newSeg ); LOG->Trace( "Inserting new Freeze at beat %f, secs %f", fBeat, newSeg->GetPause() ); } else diff --git a/src/NotesLoaderSM.cpp b/src/NotesLoaderSM.cpp index c74e867a18..889fafe2ce 100644 --- a/src/NotesLoaderSM.cpp +++ b/src/NotesLoaderSM.cpp @@ -315,7 +315,7 @@ void SMLoader::ProcessStops( TimingData &out, const RString line, const int rows } else if( fFreezeSeconds > 0.0f ) { - out.AddSegment(SEGMENT_STOP_DELAY, + out.AddSegment(SEGMENT_STOP, new StopSegment(fFreezeBeat, fFreezeSeconds)); } @@ -353,14 +353,13 @@ void SMLoader::ProcessDelays( TimingData &out, const RString line, const int row const float fFreezeBeat = RowToBeat( arrayDelayValues[0], rowsPerBeat ); const float fFreezeSeconds = StringToFloat( arrayDelayValues[1] ); - StopSegment * new_seg = new StopSegment(fFreezeBeat, - fFreezeSeconds, - true); + DelaySegment * new_seg = new DelaySegment(fFreezeBeat, + fFreezeSeconds); // LOG->Trace( "Adding a delay segment: beat: %f, seconds = %f", new_seg.m_fStartBeat, new_seg.m_fStopSeconds ); if(fFreezeSeconds > 0.0f) - out.AddSegment( SEGMENT_STOP_DELAY, new_seg ); + out.AddSegment( SEGMENT_DELAY, new_seg ); else LOG->UserLog( "Song file", diff --git a/src/NotesWriterDWI.cpp b/src/NotesWriterDWI.cpp index 33809c357c..69e3b7c5e5 100644 --- a/src/NotesWriterDWI.cpp +++ b/src/NotesWriterDWI.cpp @@ -381,7 +381,8 @@ bool NotesWriterDWI::Write( RString sPath, const Song &out ) break; } - const vector &stops = out.m_SongTiming.allTimingSegments[SEGMENT_STOP_DELAY]; + // TODO: Also check for delays, add them as stops minus one row? + const vector &stops = out.m_SongTiming.allTimingSegments[SEGMENT_STOP]; if( !stops.empty() ) { f.Write( "#FREEZE:" ); diff --git a/src/NotesWriterJson.cpp b/src/NotesWriterJson.cpp index 984a895295..e8984a5034 100644 --- a/src/NotesWriterJson.cpp +++ b/src/NotesWriterJson.cpp @@ -25,7 +25,7 @@ static void Serialize(const TimingSegment &seg, Json::Value &root) static void Serialize(const TimingData &td, Json::Value &root) { JsonUtil::SerializeVectorPointers( td.allTimingSegments[SEGMENT_BPM], Serialize, root["BpmSegments"] ); - JsonUtil::SerializeVectorPointers( td.allTimingSegments[SEGMENT_STOP_DELAY], Serialize, root["StopSegments"] ); + JsonUtil::SerializeVectorPointers( td.allTimingSegments[SEGMENT_STOP], Serialize, root["StopSegments"] ); } static void Serialize(const LyricSegment &o, Json::Value &root) diff --git a/src/NotesWriterSM.cpp b/src/NotesWriterSM.cpp index 81eca70991..a33fc0a241 100644 --- a/src/NotesWriterSM.cpp +++ b/src/NotesWriterSM.cpp @@ -96,18 +96,20 @@ static void WriteGlobalTags( RageFile &f, Song &out ) int iRow = ws->GetRow(); float fBPS = 60 / out.m_SongTiming.GetBPMAtRow(iRow); float fSkip = fBPS * ws->GetLength(); - out.m_SongTiming.AddSegment(SEGMENT_STOP_DELAY, - new StopSegment(iRow, -fSkip, false) ); + out.m_SongTiming.AddSegment(SEGMENT_STOP, + new StopSegment(iRow, -fSkip) ); } } + // TODO: make Delays into Stops that start one row before. + f.Write( "#STOPS:" ); - vector &stops = timing.allTimingSegments[SEGMENT_STOP_DELAY]; + vector &stops = timing.allTimingSegments[SEGMENT_STOP]; for( unsigned i=0; i(stops[i]); float fBeat = fs->GetBeat(); - if (fs->GetDelay()) fBeat--; + // if (fs->GetDelay()) fBeat--; f.PutLine( ssprintf( "%.3f=%.3f", fBeat, fs->GetPause() ) ); if( i != stops.size()-1 ) diff --git a/src/NotesWriterSSC.cpp b/src/NotesWriterSSC.cpp index 0a47768f41..e341782478 100644 --- a/src/NotesWriterSSC.cpp +++ b/src/NotesWriterSSC.cpp @@ -77,21 +77,20 @@ static void GetTimingTags( vector &lines, TimingData timing, bool bIsSo w.Finish(); w.Init( "STOPS" ); - vector &stops = timing.allTimingSegments[SEGMENT_STOP_DELAY]; + vector &stops = timing.allTimingSegments[SEGMENT_STOP]; for (i = 0; i < stops.size(); i++) { StopSegment *ss = static_cast(stops[i]); - if( !ss->GetDelay() ) - w.Write( ss->GetRow(), ss->GetPause() ); + w.Write( ss->GetRow(), ss->GetPause() ); } w.Finish(); w.Init( "DELAYS" ); - for (i = 0; i < stops.size(); i++) + vector &delays = timing.allTimingSegments[SEGMENT_DELAY]; + for (i = 0; i < delays.size(); i++) { - StopSegment *ss = static_cast(stops[i]); - if( ss->GetDelay() ) - w.Write( ss->GetRow(), ss->GetPause() ); + DelaySegment *ss = static_cast(delays[i]); + w.Write( ss->GetRow(), ss->GetPause() ); } w.Finish(); @@ -183,9 +182,9 @@ static void WriteTimingTags( RageFile &f, const TimingData &timing, bool bIsSong f.PutLine(ssprintf("#BPMS:%s;", join(",\r\n", timing.ToVectorString(SEGMENT_BPM)).c_str())); f.PutLine(ssprintf("#STOPS:%s;", - join(",\r\n", timing.ToVectorString(SEGMENT_STOP_DELAY, false)).c_str())); + join(",\r\n", timing.ToVectorString(SEGMENT_STOP)).c_str())); f.PutLine(ssprintf("#DELAYS:%s;", - join(",\r\n", timing.ToVectorString(SEGMENT_STOP_DELAY, true)).c_str())); + join(",\r\n", timing.ToVectorString(SEGMENT_DELAY)).c_str())); f.PutLine(ssprintf("#WARPS:%s;", join(",\r\n", timing.ToVectorString(SEGMENT_WARP)).c_str())); f.PutLine(ssprintf("#TIMESIGNATURES:%s;", diff --git a/src/TimingData.cpp b/src/TimingData.cpp index f15e564934..48520b7840 100644 --- a/src/TimingData.cpp +++ b/src/TimingData.cpp @@ -1364,20 +1364,13 @@ void TimingData::NoteRowToMeasureAndBeat( int iNoteRow, int &iMeasureIndexOut, i return; } -vector TimingData::ToVectorString(TimingSegmentType tst, - bool isDelay, int dec) const +vector TimingData::ToVectorString(TimingSegmentType tst, int dec) const { const vector segs = this->allTimingSegments[tst]; vector ret; for (unsigned i = 0; i < segs.size(); i++) { - if (tst == SEGMENT_STOP_DELAY) - { - StopSegment *seg = static_cast(segs[i]); - if (seg->GetDelay() != isDelay) - continue; - } ret.push_back(segs[i]->ToString(dec)); } return ret; @@ -1433,12 +1426,12 @@ public: } static int GetStops( T* p, lua_State *L ) { - LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_STOP_DELAY, false), L); + LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_STOP), L); return 1; } static int GetDelays( T* p, lua_State *L ) { - LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_STOP_DELAY, true), L); + LuaHelpers::CreateTableFromArray(p->ToVectorString(SEGMENT_DELAY), L); return 1; } static int GetBPMs( T* p, lua_State *L ) diff --git a/src/TimingData.h b/src/TimingData.h index 8cf239e2f0..fc87f5d9b2 100644 --- a/src/TimingData.h +++ b/src/TimingData.h @@ -830,7 +830,7 @@ public: */ float m_fBeat0OffsetInSeconds; - vector ToVectorString(TimingSegmentType tst, bool isDelay = false, int dec = 6) const; + vector ToVectorString(TimingSegmentType tst, int dec = 6) const; }; #undef COMPARE