Commit Graph

60 Commits

Author SHA1 Message Date
ekrctb
31d3607105 Add TODO comment 2021-04-12 18:54:36 +09:00
ekrctb
359fae895f Rename property 2021-04-12 18:50:25 +09:00
ekrctb
f1b8171e38 Remove #nullable true for now to suppress inspector 2021-04-12 17:13:48 +09:00
ekrctb
e19e8ff2a3 Rewrite FramedReplayInputHandler for robustness
This commit changes the semantics of `CurrentFrame` and `NextFrame` of the class.
The ordering of `NextFrame.Time` and `CurrentFrame.Time` was dependent on the current direction.
Now, it should always satisfy `CurrentFrame.Time <= CurrentTime <= NextFrame.Time` except at the start/end.
This change, however, doesn't break existing deriving classes if the template code pattern usage of interpolation is used.
The deriving class code can be simplified due to the elimination of nullable types. I didn't include those changes in this commit.

I removed `StreamingFramedReplayInputHandlerTest` for now, as it is almost-duplicate of `FramedReplayInputHandlerTest`. I'll include more tests in later commits.

This commit fixes #6150.
2021-04-12 16:18:11 +09:00
ekrctb
d6d8ea5b6b Throw when getting a frame of an empty replay 2021-04-12 11:17:56 +09:00
Dean Herbert
9537090d28 Setup all spectator model classes for MessagePack 2021-01-26 16:39:35 +09:00
Dan Balasescu
04178e9458
Merge branch 'master' into spectator-replay-watcher 2020-11-02 14:54:51 +09:00
Bartłomiej Dach
2b0bea535e Resolve CA1805 inspections
"Member is explicitly initialized to its default value"
2020-11-01 18:47:40 +01:00
Dean Herbert
32e68a6a3c Fix FramedReplayInputHandler incorrectly blocking in streaming mode when time requested is before the first frame
Most of this is just tidying up the logic to (hopefully) be better to
follow, again (again (again)).

The actual fix is that we now allow interpolation/playback when the
incoming time is less than the first frame's time, regardless of
receiving status.
2020-10-30 16:09:03 +09:00
Dean Herbert
6eddd76bdc Simplify FramedReplayInputHandler's SetFrame implementation 2020-10-28 16:03:23 +09:00
Dean Herbert
3e5322541d Make direction setting more clear 2020-10-28 14:35:42 +09:00
Dean Herbert
b3d793a505 Fix gameplay proceeding when no frames have been received yet 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
400542bc0b Ensure frames arrive 2020-10-27 18:58:37 +09:00
Dean Herbert
648e414c14 Update InputHandlers in line with framework changes 2020-07-19 11:39:11 +09:00
alex
0e2ccac33b Add spaces to comments 2020-05-04 18:36:24 -07:00
Dean Herbert
8a2aac5f83 Rename conversion methods for clarity 2020-03-25 20:21:34 +09:00
Dean Herbert
022465f546 Add encoding and import support 2020-03-24 14:51:52 +09:00
Dean Herbert
61a7f04efb Add a sane key up delay to relax mod 2020-02-14 17:13:50 +09:00
Berkan Diler
6cab517b2d .NET Standard 2.1 implements Math.Clamp , use it instead of MathHelper.Clamp from osuTK. 2019-11-20 13:37:47 +01:00
Dean Herbert
624e5644a4 Change osu!catch key trigger to occur on frame before positional change 2019-09-13 23:06:35 +09:00
Dean Herbert
acdfeef1dc Improve how osu!catch stores and replays key actions 2019-09-12 18:33:46 +09:00
Desconocidosmh
b3556403aa Make GetNextObject() a virtual method 2019-08-19 16:18:25 +02:00
Dean Herbert
80ddfc3b1e Disable frame accurate replay playback
I want to prioritise better playback performance over accuracy for now. Also, in my testing this is still 100% accurate due to the addition of the FrameStabilityContainer, which is pretty cool.
2019-07-10 10:27:51 +09:00
Dean Herbert
d1a175675d Use variable 2019-04-01 10:37:02 +09:00
Dean Herbert
5d91c3bcfc Fix replay handler nullref crashes 2019-03-31 01:33:56 +09:00
Dean Herbert
e7b38cdc75 Remove unnecessary set 2019-03-29 12:38:47 +09:00
Dean Herbert
5b0aa7bf8d Split out current/next frame conditionals for readability 2019-03-29 12:38:40 +09:00
Dean Herbert
70f99400ad Fix many behavioural issues and add tests 2019-03-28 19:28:13 +09:00
Dean Herbert
148e26a6d4 Fix FramedReplayInputHandler starting at frame 0 when it shouldn't 2019-03-28 12:42:57 +09:00
Dean Herbert
1f44dde96b Fix autoplay tests not working 2019-03-07 18:34:56 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
smoogipoo
2ee181daf7 Re-namespace replay-related classes 2018-11-28 17:20:37 +09:00
smoogipoo
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
Dean Herbert
0f37758314 Update framework 2018-07-21 16:21:53 +09:00
Dean Herbert
dbc538abbe Use Enum.HasFlag
With .NET core 2.0+ this is as efficient as the ugly code we've been using.
2018-07-16 16:18:46 +09:00
ekrctb
d6084c0b30 Adapt to new input handling changes 2018-06-22 18:10:27 +09:00
smoogipoo
66b3b295e7 Use IBeatmap wherever possible 2018-04-19 20:44:38 +09:00
Dean Herbert
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
Dean Herbert
0e669c9a3f Fix many warnings 2018-03-24 18:23:22 +09:00
smoogipoo
fb16c3db87 Privatise CurrentTime's setter 2018-03-01 02:28:14 +09:00
smoogipoo
19911193cf Minify LegacyReplayFrame 2018-03-01 02:28:14 +09:00
smoogipoo
cf42d5bbd5 Remove mostly-unused Score parameter 2018-03-01 02:28:14 +09:00
smoogipoo
a3c7755ade Implement a conversion process for ReplayFrames 2018-03-01 02:28:14 +09:00
Dean Herbert
1d687c470c Fix clock not incrementing beyond last frame of replay 2018-02-01 18:49:14 +09:00
Aergwyn
ae1adfd2f2 remove unnecessary empty lines
codefactor.io \(o.o)/
also one unnecessary semicolon
2018-01-12 19:30:34 +01:00
Dean Herbert
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
smoogipoo
1136db1556 Fix mania replays not defining important frames
Resolves https://github.com/ppy/osu/issues/1495 .
2017-11-29 14:20:15 +09:00
smoogipoo
5277c3c164 Set the frame time appropriately to reverse judgements a little better 2017-11-10 22:11:25 +09:00