mirror of
https://github.com/ppy/osu.git
synced 2025-01-25 21:32:57 +08:00
Fixed certain UI elements not working for HitObject BPM/Offset adjustment
This commit is contained in:
parent
ac0c425e29
commit
33d0d4c8f2
@ -109,11 +109,18 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
Beatmap.ControlPointInfo.RemoveGroup(SelectedGroup.Value);
|
||||
|
||||
foreach (var cp in currentGroupItems)
|
||||
{
|
||||
// Only adjust hit object offsets if the group contains a timing control point
|
||||
if (Beatmap.AdjustNotesOnOffsetBPMChange.Value && cp is TimingControlPoint tp)
|
||||
tp.AdjustHitObjectOffset(Beatmap, time - SelectedGroup.Value.Time);
|
||||
Beatmap.ControlPointInfo.Add(time, cp);
|
||||
}
|
||||
|
||||
// the control point might not necessarily exist yet, if currentGroupItems was empty.
|
||||
SelectedGroup.Value = Beatmap.ControlPointInfo.GroupAt(time, true);
|
||||
|
||||
Beatmap.UpdateAllHitObjects();
|
||||
|
||||
changeHandler?.EndChange();
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Bindables;
|
||||
@ -10,14 +9,11 @@ using osu.Framework.Graphics.Containers;
|
||||
using osu.Framework.Graphics.Shapes;
|
||||
using osu.Framework.Graphics.Sprites;
|
||||
using osu.Framework.Input.Events;
|
||||
using osu.Framework.Utils;
|
||||
using osu.Game.Beatmaps.ControlPoints;
|
||||
using osu.Game.Graphics;
|
||||
using osu.Game.Graphics.UserInterface;
|
||||
using osu.Game.Graphics.UserInterfaceV2;
|
||||
using osu.Game.Overlays;
|
||||
using osu.Game.Rulesets.Objects;
|
||||
using osu.Game.Rulesets.Objects.Types;
|
||||
using osuTK;
|
||||
|
||||
namespace osu.Game.Screens.Edit.Timing
|
||||
@ -226,7 +222,6 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
beatmap.UpdateAllHitObjects();
|
||||
}
|
||||
|
||||
|
||||
private void adjustBpm(double adjust)
|
||||
{
|
||||
var timing = selectedGroup.Value?.ControlPoints.OfType<TimingControlPoint>().FirstOrDefault();
|
||||
|
@ -42,6 +42,17 @@ namespace osu.Game.Screens.Edit.Timing
|
||||
{
|
||||
if (!isRebinding) ChangeHandler?.SaveState();
|
||||
}
|
||||
|
||||
bpmTextEntry.Bindable.BindValueChanged(val =>
|
||||
{
|
||||
if (ControlPoint.Value == null)
|
||||
return;
|
||||
|
||||
ChangeHandler?.BeginChange();
|
||||
ControlPoint.Value.SetHitObjectBPM(Beatmap, val.OldValue);
|
||||
Beatmap.UpdateAllHitObjects();
|
||||
ChangeHandler?.EndChange();
|
||||
});
|
||||
}
|
||||
|
||||
private bool isRebinding;
|
||||
|
Loading…
Reference in New Issue
Block a user