Commit Graph

54 Commits

Author SHA1 Message Date
Dean Herbert
b4e5311014 Move initial state set inside updateClock 2020-10-30 20:39:25 +09:00
Dean Herbert
1bd461f229 Move clock logic back to inside updateClock method 2020-10-30 20:21:14 +09:00
Dean Herbert
0f997386ae Fix direction and IsRunning not updating on first frame after becoming valid
The parent clock will not unpause until WaitingForFrames becomes false,
so I've moved the set of that before we start to propagate its values
across. Doesn't fix any visible issue but should make propagation one
game loop faster.
2020-10-30 15:26:23 +09:00
Dean Herbert
326fd03525 Fix loop not exiting after first valid frame 2020-10-30 15:25:53 +09:00
Dean Herbert
8e6c803900 Avoid running full updateClock loop when waiting on frames 2020-10-30 12:39:11 +09:00
Dean Herbert
87be7d162b
Merge branch 'master' into spectator-replay-watcher 2020-10-30 00:25:17 +09:00
Dean Herbert
335d150a13 Fix aim time being mutated inside update loop 2020-10-29 18:11:50 +09:00
Dean Herbert
2671d371da Move clock retrieval to new correct location 2020-10-29 15:28:39 +09:00
Dean Herbert
db2b00068f Avoid sourcing parent clock when in a paused state 2020-10-29 14:48:56 +09:00
Dean Herbert
d91456dc29 Move initial validity check out of loop for clarity 2020-10-29 14:25:47 +09:00
Dean Herbert
2e5a8b2287 Fix xmldoc to read better in new context 2020-10-29 13:16:31 +09:00
Dean Herbert
09da75b143 Merge branch 'frame-stability-clean-up' into spectator-replay-watcher 2020-10-28 15:34:46 +09:00
Dean Herbert
2b1e79a4e8 Simplify state changes further 2020-10-28 15:32:20 +09:00
Dean Herbert
c9515653b3 Restore previous directionality logic to avoid logic differences 2020-10-28 15:31:57 +09:00
Dean Herbert
77d807d0f5 Merge branch 'frame-stability-clean-up' into spectator-replay-watcher 2020-10-28 15:26:02 +09:00
Dean Herbert
59e9c2639a Remove try-finally 2020-10-28 15:16:56 +09:00
Dean Herbert
a06516c900 Extract out frame stability state into enum for (hopefully) better clarity 2020-10-28 15:15:15 +09:00
Dean Herbert
8c9bda2ded Split out replay update method 2020-10-28 15:14:06 +09:00
Dean Herbert
9b9a41596f Split out frame stability calculation to own method 2020-10-28 15:14:06 +09:00
Dean Herbert
851d45d2eb Add sane pausing logic 2020-10-27 18:58:37 +09:00
Dean Herbert
9e6b0a42ec Allow FrameStabilityContainer to handle waiting-for-data state better (and pause outwards) 2020-10-27 18:58:37 +09:00
Dean Herbert
b8beac27ce Use previous logic for catching-up mode 2020-10-27 17:14:41 +09:00
Dean Herbert
9cfb81589e Use bindable flow instead 2020-10-27 14:10:12 +09:00
Dean Herbert
6853da459d Move sample pausing logic out of FrameStabilityContainer 2020-10-27 13:54:33 +09:00
Dean Herbert
e3eaba7b2c Move ISampleDisabler implementation to Player and FrameStabilityContainer 2020-10-14 19:39:48 +09:00
Dean Herbert
0605bb9b8d Fix incorrect parent state transfer 2020-10-05 16:20:29 +09:00
Dean Herbert
ae8bf8cdd4 Fix StabilityGameClock not being updated 2020-10-05 14:27:51 +09:00
Dean Herbert
e4710f82ec Fix sample disabled status not being updated correctly from seek state 2020-10-05 14:27:51 +09:00
Dean Herbert
af7d10afe0 Fix FrameStabilityContainer not re-caching its GameplayClock correctly 2020-10-05 14:27:51 +09:00
Dean Herbert
fd58a24183
Merge branch 'master' into fix-spinner-rpm-user-rate-adjust 2020-09-28 17:45:48 +09:00
Dean Herbert
e8220cf1b6 Allow attaching a replay to a FrameStabilityContainer when FrameStablePlayback is off 2020-09-28 15:47:11 +09:00
Dean Herbert
892d440ed0 Add fallback path for potential null ParentGameplayClock 2020-09-25 13:19:07 +09:00
Dean Herbert
3f788da06d Fix SPM changing incorrectly with playback rate changes 2020-09-21 19:39:54 +09:00
smoogipoo
f3b5149648 Move some suggestions to warnings, resolve issues 2020-06-03 16:48:44 +09:00
Dean Herbert
ce223a2bd8 Silence hit sounds while seeking 2020-05-21 11:08:06 +09:00
Dean Herbert
2b1245f63a Improve xmldoc in a couple of places 2020-03-26 12:50:00 +09:00
Dean Herbert
aeb62825cd Move out requireMoreUpdateLoops for better consistency 2019-10-04 13:42:06 +08:00
Dean Herbert
ddef7fa3ba Repair behavioural change 2019-10-04 13:32:47 +08:00
Dean Herbert
b28689c774 Fix key counters appearing negative on intense beatmaps
When `FrameStabilityContainer` decides it needs multiple updates on the same frame, it ends up with an elapsed time of zero. This was interacting badly with the condition used in `RulesetInputManager` to govern playback direction.

I have changed this to use `Rate` as exposed by the frame stable clock.

- Closes #6198.
2019-10-03 15:01:54 +08:00
Dean Herbert
152df9f3d5 Remove accidental blank line 2019-08-16 20:23:09 +09:00
Dean Herbert
d11b896148 Move FrameStablePlayback handling to early return 2019-08-16 20:21:00 +09:00
Dean Herbert
58d2268b9e Combine conditionals that provide the same behaviour 2019-08-16 19:52:35 +09:00
smoogipoo
8c67f58e2d Disable frame-stable playback in the editor 2019-08-15 18:25:31 +09:00
smoogipoo
3fe61c4a7e Trim whitespace 2019-05-10 18:48:39 +09:00
Dean Herbert
a44296a6db
Merge branch 'master' into progress-bar-show-seek 2019-05-10 17:27:49 +09:00
Dean Herbert
9248e6290c Use FrameStabilityClock to denote current position on song progress 2019-05-09 18:09:26 +09:00
Dean Herbert
3bcfc86b9c Allow custom MaxCatchUpFrames to be specified
Also adjusts the default to allow for smoother seeking.
2019-05-09 16:39:03 +09:00
Dean Herbert
66594b7a1b Pass GameplayStartTime to FrameStabilityContainer to allow bypassing prior to start 2019-05-09 16:39:03 +09:00
Dean Herbert
60328cf1fb Ensure FrameStabilityContainer's ElapsedTime is zero on initial seek 2019-04-24 15:25:53 +09:00
Dean Herbert
80e1568e97 Fix FrameStabilityContainer performing frame-stable seeks 2019-04-24 15:25:52 +09:00