Revert incorrect end position optimisation

Closes https://github.com/ppy/osu/issues/26867.

Reverts 882f490390
and ce643aa68f.

The applied optimisation may have been valid as long as it was
constrained to `Slider`. But it is not, as `SliderTailCircle` stores a
local copy of the object position. And as the commit message of
ce643aa68f states, this could be bypassed
by some pretty hacky delegation from `SliderTailCircle.Position` to the
slider, but it'd also be pretty hacky because it would make flows like
`PositionBindable` break down.

Long-term solution is to probably remove bindables from hitobjects.
This commit is contained in:
Bartłomiej Dach 2024-01-31 12:43:24 +01:00
parent a934556bb8
commit dfea2ade6d
No known key found for this signature in database
1 changed files with 2 additions and 2 deletions

View File

@ -98,7 +98,7 @@ public int RepeatCount
set set
{ {
repeatCount = value; repeatCount = value;
endPositionCache.Invalidate(); updateNestedPositions();
} }
} }
@ -165,7 +165,7 @@ public double SliderVelocityMultiplier
public Slider() public Slider()
{ {
SamplesBindable.CollectionChanged += (_, _) => UpdateNestedSamples(); SamplesBindable.CollectionChanged += (_, _) => UpdateNestedSamples();
Path.Version.ValueChanged += _ => endPositionCache.Invalidate(); Path.Version.ValueChanged += _ => updateNestedPositions();
} }
protected override void ApplyDefaultsToSelf(ControlPointInfo controlPointInfo, IBeatmapDifficultyInfo difficulty) protected override void ApplyDefaultsToSelf(ControlPointInfo controlPointInfo, IBeatmapDifficultyInfo difficulty)