1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-12 18:23:04 +08:00

Make sure latest catcher position is used for catching logic

A replay frame processed in CatchInputManager is applied to catcher in `CatcherArea`.
The catcher position is then used for the catching logic for each hit object under `HitObjectContainer`.
Thus, if `HitObjectContainer` came before `CatcherArea`, the replay input is delayed one frame.
That was one reason why the catch autoplay misses hit objects (especially when fast-forwarded).
This commit is contained in:
ekrctb 2021-04-09 16:04:45 +09:00
parent b10ee7482d
commit 6d0dc62502

View File

@ -51,8 +51,11 @@ namespace osu.Game.Rulesets.Catch.UI
{
droppedObjectContainer,
CatcherArea.MovableCatcher.CreateProxiedContent(),
HitObjectContainer,
HitObjectContainer.CreateProxy(),
// This ordering (`CatcherArea` before `HitObjectContainer`) is important to
// make sure the up-to-date catcher position is used for the catcher catching logic of hit objects.
CatcherArea,
HitObjectContainer,
};
}