Skip to content

Commit

Permalink
Merge pull request #26041 from bdach/fix-relax-sliders
Browse files Browse the repository at this point in the history
Fix relax mod not considering full follow area radius when automatically holding sliders
  • Loading branch information
peppy authored Dec 22, 2023
2 parents 7e09164 + 7e55715 commit 85c2484
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion osu.Game.Rulesets.Osu/Mods/OsuModRelax.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public void Update(Playfield playfield)
if (!slider.HeadCircle.IsHit)
handleHitCircle(slider.HeadCircle);

requiresHold |= slider.Ball.IsHovered || h.IsHovered;
requiresHold |= slider.SliderInputManager.IsMouseInFollowArea(true);
break;

case DrawableSpinner spinner:
Expand Down
8 changes: 4 additions & 4 deletions osu.Game.Rulesets.Osu/Objects/Drawables/SliderInputManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,15 +65,15 @@ protected override bool OnMouseMove(MouseMoveEvent e)
protected override void Update()
{
base.Update();
updateTracking(isMouseInFollowArea(Tracking));
updateTracking(IsMouseInFollowArea(Tracking));
}

public void PostProcessHeadJudgement(DrawableSliderHead head)
{
if (!head.Judged || !head.Result.IsHit)
return;

if (!isMouseInFollowArea(true))
if (!IsMouseInFollowArea(true))
return;

Debug.Assert(screenSpaceMousePosition != null);
Expand Down Expand Up @@ -129,7 +129,7 @@ public void PostProcessHeadJudgement(DrawableSliderHead head)
// If all ticks were hit so far, enable tracking the full extent.
// If any ticks were missed, assume tracking would've broken at some point, and should only activate if the cursor is within the slider ball.
// For the second case, this may be the last chance we have to enable tracking before other objects get judged, otherwise the same would normally happen via Update().
updateTracking(allTicksInRange || isMouseInFollowArea(false));
updateTracking(allTicksInRange || IsMouseInFollowArea(false));
}

public void TryJudgeNestedObject(DrawableOsuHitObject nestedObject, double timeOffset)
Expand Down Expand Up @@ -174,7 +174,7 @@ public void TryJudgeNestedObject(DrawableOsuHitObject nestedObject, double timeO
/// Whether the mouse is currently in the follow area.
/// </summary>
/// <param name="expanded">Whether to test against the maximum area of the follow circle.</param>
private bool isMouseInFollowArea(bool expanded)
public bool IsMouseInFollowArea(bool expanded)
{
if (screenSpaceMousePosition is not Vector2 pos)
return false;
Expand Down

0 comments on commit 85c2484

Please sign in to comment.