diff --git a/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs b/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs index 2b4872e8..bdea6bd9 100644 --- a/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs +++ b/Mapping_Tools/Views/TimingCopier/TimingCopierView.xaml.cs @@ -150,7 +150,8 @@ private string Copy_Timing(TimingCopierVm arg, BackgroundWorker worker, DoWorkEv foreach (HitObject ho in beatmapTo.HitObjects) { ho.ResnapSelf(timingTo, arg.BeatDivisors, firstTp: redlines.FirstOrDefault()); - ho.ResnapEnd(timingTo, arg.BeatDivisors, firstTp: redlines.FirstOrDefault()); + // It's not safe to resnap slider ends here because the sliders still assume the old duration and BPM + // And we haven't fixed the SV for new redlines yet } // Resnap greenlines @@ -176,6 +177,16 @@ private string Copy_Timing(TimingCopierVm arg, BackgroundWorker worker, DoWorkEv // Apply timing changes TimingPointsChange.ApplyChanges(timingTo, timingPointsChanges); + if ((arg.ResnapMode == "Just resnap" || arg.ResnapMode == "Number of beats between objects stays the same") && redlines.Count > 0) { + // Resnap slider ends and spinner ends + beatmapTo.GiveObjectsGreenlines(); + beatmapTo.CalculateSliderEndTimes(); + foreach (HitObject ho in beatmapTo.HitObjects) + { + ho.ResnapEnd(timingTo, arg.BeatDivisors, firstTp: redlines.FirstOrDefault()); + } + } + // Save the file editorTo.SaveFile();