Commit Graph

8377 Commits

Author SHA1 Message Date
e937b778f6 Fix potential failure in ensureSourceClockSet()
`ensureSourceClockSet()` was intended to only run when the adjustable
source hasn't been set at all yet. As it turns out permitting it to run
unconditionally can break the state of the underlying interpolated
clock. This is caused by the following factors:

* While the decoupleable clock is running, its `CurrentTime` does not
  come from either the source clock, or the internal stopwatch; it is
  instead calculated using the base `InterpolatingFramedClock` logic.

* A source change of a decoupleable clock seeks the provided source
  clock to the decoupleable's current time.

* When an interpolating clock is seeked (decoupleable clock is also
  an interpolating one), its interpolation state
  (`{Last,Current}InterpolatedTime`) are reset to 0.

* If the interpolating clock determines that its current time is too
  far away from the source's time (which was set when the source is
  changed), it will ignore the source and instead continue to use
  its current time until the source clock has caught up.

Overall, the source change is not really necessary if a source is
already there. The only reason to ensure it was set was to make sure
the first seek of the gameplay clock wasn't performed in decoupled
mode. Therefore, add a guard to make sure the source is only set if
there isn't one already.
2021-04-24 14:19:39 +02:00
fdb5490e51 Attempt to explain source initialisation better 2021-04-23 21:56:08 +02:00
ae2fd2f2e1 Ensure source is set on reset 2021-04-23 18:46:59 +09:00
93b53f54fa Merge pull request #12531 from peppy/editor-add-nudge-shortcuts
Add simple key based time nudging support to editor
2021-04-22 21:14:51 +09:00
50f37ef09c Merge pull request #12519 from peppy/editor-hit-animation-toggle
Add editor hit animation toggle
2021-04-22 20:49:21 +09:00
a5364b224f Add simple key based time nudging support to editor 2021-04-22 18:47:04 +09:00
1884c18a2c Ignore movement operations which have no offset 2021-04-22 18:12:03 +09:00
daafa41dc1 Merge branch 'master' into fix-initial-spectator-state-callback 2021-04-22 16:22:04 +09:00
9d8f0c854d Setup configuration item for editor hit animations 2021-04-21 18:05:40 +09:00
c6c91cd9a5 Refactor WaveformOpacityMenuItem to not receive whole config 2021-04-21 18:05:26 +09:00
31c5fb350f Merge branch 'master' into gcc-abstraction 2021-04-21 16:33:36 +09:00
fb848f7544 Rename to MasterGameplayClock 2021-04-21 16:33:14 +09:00
26430e3cb5 Merge pull request #12492 from Naxesss/bg-audio-quality-checks
Add background and audio checks
2021-04-21 00:10:32 +09:00
a9e4a0ed50 Fix potentially starting play when finished
The UserFinishedPlaying event may trigger before the event is subscribed
to by SpectatorScreen. For such cases, an extra check is done to make
sure the user is _actually_ playing.
2021-04-20 21:19:08 +09:00
156a518068 Merge branch 'master' into fix-initial-spectator-state-callback 2021-04-20 21:16:05 +09:00
3e1b6b3b34 Simplify verifier run call args
Uses the resolved working beatmap instead of resolving it every time.

Also uses the EditorBeatmap itself as playable beatmap, as it is of type `IBeatmap` already, and `.PlayableBeatmap` forwards everything anyway.
2021-04-20 13:34:12 +02:00
ec080fcb32 Move seekOffset back to MasterGameplayClockContainer 2021-04-20 18:25:46 +09:00
a683e5ec34 Seek using local method 2021-04-20 17:40:11 +09:00
97fb90d9f4 Move clock processing to base.Seek() 2021-04-20 17:35:59 +09:00
80473a356e Merge branch 'fix-pre-seek-sample-lifetime' into gcc-abstraction 2021-04-20 17:27:01 +09:00
3d6d26039a Remove unused usings 2021-04-20 14:09:54 +09:00
88ded95e75 Ensure clock is set in GCC.Start() 2021-04-20 13:56:13 +09:00
8dd9134e3d Move source clock adjustment application to Start() 2021-04-20 13:09:49 +09:00
a92ae8ce76 Fix Reset() potentially not resetting to the intended start position 2021-04-20 13:01:42 +09:00
496df411a7 Remove now unused import 2021-04-20 02:39:11 +02:00
0e6b66f457 Merge branch 'master' into bg-audio-quality-checks 2021-04-20 02:36:13 +02:00
8656176ab8 Add the playable beatmap as check argument
This is different from the working beatmap's `.Beatmap` property in that it is mutated by the ruleset/editor.

So hit objects, for example, are actually of type `Slider` and such instead of the legacy `ConvertSlider`.

This should be preferred over `workingBeatmap.Beatmap`.
2021-04-20 01:31:51 +02:00
0825fc57a9 Move foreground colour helper into OsuColour 2021-04-19 18:24:48 +02:00
97573fb11d Merge branch 'master' into combo-colours-display 2021-04-19 18:21:57 +02:00
acbf4580a4 Only set initial source in Reset() 2021-04-19 19:57:00 +09:00
c7183f92f7 Rename Restart() -> Reset() 2021-04-19 19:57:00 +09:00
a40dcd4b8d Add a touch more space in the timing column 2021-04-19 18:53:06 +09:00
097a347533 Adjust Add different background colour for timing area 2021-04-19 18:25:30 +09:00
5bce5d2057 Update design logic 2021-04-19 18:25:20 +09:00
5397f4faba Merge branch 'master' into fix-initial-spectator-state-callback 2021-04-19 16:49:06 +09:00
c50b526ba0 Remove local state dictionary from SpectatorScreen 2021-04-19 16:48:55 +09:00
1ebc5ac5cc Remove unused legacy class 2021-04-19 16:36:00 +09:00
8da561a2a6 Soften colours and adjust padding slightly 2021-04-19 16:35:36 +09:00
f8b20ca8aa Add new display for effect row attribute 2021-04-19 16:35:36 +09:00
ec249a0edb Add new display for sample row attribute 2021-04-19 16:23:28 +09:00
6465a72060 Add bubbled word class for use in attribute rows 2021-04-19 16:23:28 +09:00
3aad0a8b9c Add new display for difficulty row attribute 2021-04-19 16:23:06 +09:00
d3cebfb6fb Use explicit label 2021-04-19 16:23:06 +09:00
a10a8680d0 Add new display for timing row attributes 2021-04-19 16:23:06 +09:00
f4baff9e04 Make TimingScreen use rounded screen and adjust spacing/padding 2021-04-19 14:35:35 +09:00
e143afb598 Split out rounded content screen from SetupScreen for use in other places 2021-04-19 14:28:32 +09:00
513e470b52 Adjust grid spacing to allow attributes to use more width 2021-04-19 13:24:53 +09:00
0c918410d0 Make "add" button more visible 2021-04-19 13:15:24 +09:00
658c23c925 Give more space to the parameter adjustment area 2021-04-19 13:15:17 +09:00
6f2ebb20a7 Fix test failing due to null beatmap skin
Also annotate the field on `EditorBeatmap` as nullable for future
travelers.
2021-04-18 20:46:42 +02:00