diff --git a/SimaiSharp/src/Internal/SyntacticAnalysis/Serializer.cs b/SimaiSharp/src/Internal/SyntacticAnalysis/Serializer.cs index 7d594fc..727ff51 100644 --- a/SimaiSharp/src/Internal/SyntacticAnalysis/Serializer.cs +++ b/SimaiSharp/src/Internal/SyntacticAnalysis/Serializer.cs @@ -18,22 +18,22 @@ public void Serialize(MaiChart chart, StringWriter writer) while (_currentTime <= chart.FinishTiming.GetValueOrDefault(0)) { if (_currentTimingChange < chart.TimingChanges.Length - 1 && - Math.Abs(chart.TimingChanges[_currentTimingChange + 1].time - _currentTime) < float.Epsilon) + Math.Abs(chart.TimingChanges[_currentTimingChange + 1].time - _currentTime) < 0.001) { _currentTimingChange++; if (Math.Abs(chart.TimingChanges[_currentTimingChange].tempo - - chart.TimingChanges[_currentTimingChange - 1].tempo) > float.Epsilon) + chart.TimingChanges[_currentTimingChange - 1].tempo) > 0.001) writer.Write($"({chart.TimingChanges[_currentTimingChange].tempo})"); if (Math.Abs(chart.TimingChanges[_currentTimingChange].subdivisions - - chart.TimingChanges[_currentTimingChange - 1].subdivisions) > float.Epsilon) + chart.TimingChanges[_currentTimingChange - 1].subdivisions) > 0.001) writer.Write($"{{{chart.TimingChanges[_currentTimingChange].subdivisions}}}"); } if (_currentNoteCollection < chart.NoteCollections.Length && Math.Abs(chart.NoteCollections[_currentNoteCollection].time - _currentTime) <= - float.Epsilon) + 0.001) { SerializeNoteCollection(chart.NoteCollections[_currentNoteCollection], writer); diff --git a/SimaiSharp/src/Internal/SyntacticAnalysis/States/SubdivisionReader.cs b/SimaiSharp/src/Internal/SyntacticAnalysis/States/SubdivisionReader.cs index 76d8d4a..a746606 100644 --- a/SimaiSharp/src/Internal/SyntacticAnalysis/States/SubdivisionReader.cs +++ b/SimaiSharp/src/Internal/SyntacticAnalysis/States/SubdivisionReader.cs @@ -23,7 +23,7 @@ public static void Process(Deserializer parent, Token token) newTimingChange.SetSeconds(explicitTempo); newTimingChange.time = parent.currentTime; - if (Math.Abs(parent.timingChanges.Last.Value.time - parent.currentTime) <= float.Epsilon) + if (Math.Abs(parent.timingChanges.Last.Value.time - parent.currentTime) <= 0.001) parent.timingChanges.RemoveLast(); parent.timingChanges.AddLast(newTimingChange); @@ -40,7 +40,7 @@ public static void Process(Deserializer parent, Token token) newTimingChange.subdivisions = subdivision; newTimingChange.time = parent.currentTime; - if (Math.Abs(parent.timingChanges.Last.Value.time - parent.currentTime) <= float.Epsilon) + if (Math.Abs(parent.timingChanges.Last.Value.time - parent.currentTime) <= 0.001) parent.timingChanges.RemoveLast(); parent.timingChanges.AddLast(newTimingChange); diff --git a/SimaiSharp/src/Internal/SyntacticAnalysis/States/TempoReader.cs b/SimaiSharp/src/Internal/SyntacticAnalysis/States/TempoReader.cs index 60aada6..ac3c6d9 100644 --- a/SimaiSharp/src/Internal/SyntacticAnalysis/States/TempoReader.cs +++ b/SimaiSharp/src/Internal/SyntacticAnalysis/States/TempoReader.cs @@ -22,7 +22,7 @@ public static void Process(Deserializer parent, Token token) newTimingChange.tempo = tempo; newTimingChange.time = parent.currentTime; - if (Math.Abs(parent.timingChanges.Last.Value.time - parent.currentTime) <= float.Epsilon) + if (Math.Abs(parent.timingChanges.Last.Value.time - parent.currentTime) <= 0.001) parent.timingChanges.RemoveLast(); parent.timingChanges.AddLast(newTimingChange);