From 1b99e54005456315288c837ff662eaef56193064 Mon Sep 17 00:00:00 2001 From: smoogipoo Date: Thu, 1 Feb 2018 15:21:23 +0900 Subject: [PATCH 1/3] Fix IsMaskedAway not being up-to-date when fastfowarding replays --- osu.Game/Rulesets/UI/RulesetInputManager.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/osu.Game/Rulesets/UI/RulesetInputManager.cs b/osu.Game/Rulesets/UI/RulesetInputManager.cs index 037f9136a8..6a978a3eb3 100644 --- a/osu.Game/Rulesets/UI/RulesetInputManager.cs +++ b/osu.Game/Rulesets/UI/RulesetInputManager.cs @@ -140,6 +140,8 @@ namespace osu.Game.Rulesets.UI if (!base.UpdateSubTree()) return false; + UpdateSubTreeMasking(ScreenSpaceDrawQuad.AABBFloat); + if (isAttached) { // When handling replay input, we need to consider the possibility of fast-forwarding, which may cause the clock to be updated From 1d687c470cc83ef7a68e79e0191c120faccb1fd0 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 1 Feb 2018 18:49:07 +0900 Subject: [PATCH 2/3] Fix clock not incrementing beyond last frame of replay --- .../Rulesets/Replays/FramedReplayInputHandler.cs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/osu.Game/Rulesets/Replays/FramedReplayInputHandler.cs b/osu.Game/Rulesets/Replays/FramedReplayInputHandler.cs index 913214abfb..c245407bbf 100644 --- a/osu.Game/Rulesets/Replays/FramedReplayInputHandler.cs +++ b/osu.Game/Rulesets/Replays/FramedReplayInputHandler.cs @@ -102,8 +102,14 @@ namespace osu.Game.Rulesets.Replays if (hasFrames) { - //if we changed frames, we want to execute once *exactly* on the frame's time. - if (currentDirection == time.CompareTo(NextFrame.Time) && advanceFrame()) + // check if the next frame is in the "future" for the current playback direction + if (currentDirection != time.CompareTo(NextFrame.Time)) + { + // if we didn't change frames, we need to ensure we are allowed to run frames in between, else return null. + if (inImportantSection) + return null; + } + else if (advanceFrame()) { // If going backwards, we need to execute once _before_ the frame time to reverse any judgements // that would occur as a result of this frame in forward playback @@ -111,10 +117,6 @@ namespace osu.Game.Rulesets.Replays return currentTime = CurrentFrame.Time - 1; return currentTime = CurrentFrame.Time; } - - //if we didn't change frames, we need to ensure we are allowed to run frames in between, else return null. - if (inImportantSection) - return null; } return currentTime = time; From 71be95f743dc8341a168e6db2157b1a46434c8a9 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 1 Feb 2018 19:25:22 +0900 Subject: [PATCH 3/3] Bring framework up-to-date --- osu-framework | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu-framework b/osu-framework index 90bf49a2df..d89e6cd631 160000 --- a/osu-framework +++ b/osu-framework @@ -1 +1 @@ -Subproject commit 90bf49a2df3dbad5994d922df63e4891c622dbc3 +Subproject commit d89e6cd63140c2b73631b79ff83b130a2b9958ed