Commit Graph

65155 Commits

Author SHA1 Message Date
Dean Herbert 0383bdf6a1
Add bindings for stepping backward/forward 2024-01-18 20:38:25 +09:00
Dean Herbert c50534c819
Move seek/step logic into `ReplayPlayer` 2024-01-18 20:38:15 +09:00
Dean Herbert 8c4af58109
Keep replay controls expanded by default 2024-01-18 20:13:32 +09:00
Dean Herbert 60e972cd15
Add ability to step forward/backwards single frames 2024-01-18 20:13:32 +09:00
Dean Herbert dafff26d0e
Tidy up implementation of `PlaybackSettings` 2024-01-18 20:13:32 +09:00
Dean Herbert e73910571f
Allow `FrameStabilityContainer` to continue updating while paused during replay playback 2024-01-18 20:13:28 +09:00
Dean Herbert 2afa4c7e1c
Remove redundant `RequiresChildrenUpdate` usage
We are already manually calling `base.UpdateSubTree` when we need to.
Changing this flag is doing nothing and just adds to the complexity of
the implementation.
2024-01-18 20:13:28 +09:00
Dean Herbert bbb5f9b0f2
Merge pull request #26603 from EVAST9919/constrained-icon
Fix `ConstrainedIconContainer` always using masking without a reason
2024-01-18 20:13:28 +09:00
Andrei Zavatski 4532a409d2
Fix ConstrainedIconContainer always using masking 2024-01-18 20:13:27 +09:00
Dean Herbert c4e9bcd140
Remove test guarantee of audio time not advancing 2024-01-18 20:06:53 +09:00
Dean Herbert 8ab8c90e33
Remove "pause rate adjust" flow 2024-01-18 14:21:02 +09:00
Dean Herbert 799c74cfe5
Simplify gameplay pause sequence 2024-01-18 14:17:19 +09:00
Dean Herbert e260e75fac
Merge pull request #26594 from frenzibyte/fix-storyboard-sprites-1
Change legacy beatmap skins to not handle `@2x` textures (to match stable)
2024-01-18 00:40:29 +09:00
Bartłomiej Dach b718897b30
Merge pull request #26593 from peppy/rolling-counter-unstick
Change rolling counters to use quicker easing types
2024-01-17 14:37:52 +01:00
Salman Ahmed bcc7dd6af5 Add extended test coverage 2024-01-17 15:58:27 +03:00
Bartłomiej Dach d335c01553
Merge pull request #26589 from peppy/key-binding-overlay-ordering
Change key overlay to use the ordering provided by rulesets
2024-01-17 13:37:26 +01:00
Dean Herbert 981e959654
Merge pull request #26578 from bdach/taiko-fail-no-hits
Fix taiko maps containing only drum rolls / swells not being passable without mods
2024-01-17 20:41:52 +09:00
Bartłomiej Dach a8970d7642
Jiggle ordering a bit further to fix revert-to-default buttons showing up 2024-01-17 12:24:48 +01:00
Dean Herbert 6a8a45bb13
Merge pull request #26585 from frenzibyte/fix-editor-ux
Fix timing point changes not applying after selecting another one
2024-01-17 19:53:35 +09:00
Dean Herbert 1af5d1434c
Rename test method slightly 2024-01-17 19:53:23 +09:00
Bartłomiej Dach 5cb17bcacf
Merge pull request #26502 from frenzibyte/prevent-submission-with-invalid-mods
Add guard against submitting score with invalid mod instances
2024-01-17 11:39:32 +01:00
Dean Herbert 0ddd89a5b8
Merge pull request #26579 from bdach/accuracy-rank-lazer-score-reimport
Fix incorrect accuracy and rank population when decoding lazer replays
2024-01-17 19:33:26 +09:00
Dean Herbert c623956b3f
Merge pull request #26576 from bdach/flashlight-broke
Fix flashlight not dimming if slider head is hit early
2024-01-17 19:23:00 +09:00
Salman Ahmed 98c65f36c9 Disable high resolution texture lookup for legacy beatmap skins to match stable 2024-01-17 12:56:29 +03:00
Salman Ahmed 5ad2918a75 Allow disabling high resolution texture lookups in `LegacySkin` 2024-01-17 12:56:29 +03:00
Dean Herbert 456a8e6e82
Merge pull request #26549 from bdach/hit-error-meter-pooling-bad
Fix `ColourHitErrorMeter` not loading pooled drawables ahead of time
2024-01-17 18:43:47 +09:00
Dean Herbert a66ddc7813
Change rolling counters to use quicker easing types 2024-01-17 18:18:53 +09:00
Dean Herbert a4c0bfd099
Change taiko's default key ordering to better match display order
Fixes the issue originally fixed via
https://github.com/ppy/osu/pull/10553 in a slightly different way,
allowing more flexibility.
2024-01-17 17:37:56 +09:00
Dean Herbert 45e52854ca
Change key overlay to use the ordering provided by rulesets
osu!mania already goes out of its way to order things correctly.
Arguably, osu!taiko just did it wrong.
2024-01-17 17:37:38 +09:00
Dean Herbert ee18123fc2
Merge pull request #26340 from stanriders/user-rank-card
Add user card with global/country ranks to login overlay
2024-01-17 17:22:33 +09:00
Dean Herbert c1c2e61723
Merge pull request #26446 from LeNitrous/add/replay-playback-controls
Add replay playback controls
2024-01-17 17:06:15 +09:00
Dean Herbert 353df2f312
Fix one more incorrect bindable flow and simplify string setters 2024-01-17 17:00:56 +09:00
Dean Herbert 66c7a29e79
Add comment about messy methods 2024-01-17 16:57:22 +09:00
Dean Herbert fe06402951
Fix incorrect bindable usage 2024-01-17 16:50:48 +09:00
Dean Herbert e97b31d82e
Fix test failures 2024-01-17 16:40:45 +09:00
Dean Herbert e7732caaf7
Make `PlayerSettingsOverlay`'s api more stringent 2024-01-17 15:13:59 +09:00
Dean Herbert 2788bd912e
Add tooltips and localisation 2024-01-17 15:12:33 +09:00
Salman Ahmed 0adfe5f348
Merge pull request #26564 from peppy/drag-volume-controls
Allow adjusting volume controls via a drag
2024-01-17 09:09:36 +03:00
Dean Herbert e53989faeb
Change replay playback adjustment to skew frequency, not tempo 2024-01-17 15:02:42 +09:00
Dean Herbert 042e852a3e
Adjust playback speed range to allow slower minimum speed 2024-01-17 15:02:42 +09:00
Dean Herbert 42f64c2c44
Move load procedure to async method and simplify code 2024-01-17 15:02:42 +09:00
Salman Ahmed 05729706eb Fix android build CI failing
No idea why this is only in android, but okay.
2024-01-17 08:53:28 +03:00
Salman Ahmed 23e5167cb5
Merge branch 'master' into drag-volume-controls 2024-01-17 08:37:34 +03:00
Salman Ahmed 1790a5df03 Remove redundant value to appease CI 2024-01-17 08:29:55 +03:00
Salman Ahmed a34d2a3424 Add small volume meter to test feel 2024-01-17 08:28:47 +03:00
Salman Ahmed 46429c5074 Schedule control point switch for settings modifications to apply first 2024-01-17 08:15:01 +03:00
Salman Ahmed f11682d44f Add failing test case 2024-01-17 08:15:01 +03:00
Dean Herbert 9cde04c30c
Change drag adjustments to be linear (and account for partial deltas) 2024-01-17 14:12:12 +09:00
Dean Herbert 68fb1b8663
Merge pull request #26573 from EVAST9919/leaderboard-glow-remove
Fix multiple issues with `GlowingSpriteText`
2024-01-17 13:17:03 +09:00
Bartłomiej Dach 17b9d842ab
Fix incorrect accuracy and rank population when decoding lazer replays
Closes https://github.com/ppy/osu/issues/24061.

The gist of this change is that if the `LegacyReplaySoloScoreInfo`
bolt-on is present in the replay, then it can (and is) used to recompute
the accuracy, and rank is computed based on that.

This was the missing part of
https://github.com/ppy/osu/issues/24061#issuecomment-1888438151.
The accuracy would change on import before that because the encode
process is _lossy_ if the `LegacyReplaySoloScoreInfo` bolt-on is not
used, as the legacy format only has 6 fields for encoding judgement
counts, and some judgements that affect accuracy in lazer do not fit
into that.

Note that this _only_ fixes _relatively_ new lazer scores looking wrong
after reimport.

- Very old lazer scores, i.e. ones that don't have the
  `LegacyReplaySoloScoreInfo` bolt-on, obviously can't use it
  to repopulate. There's really not much good that can be done there,
  so the stable pathways are used as a fallback that always works.

- For stable replays, `ScoreImporter` recalculates the accuracy of
  the score _again_ in

  15a5fd7e4c/osu.Game/Scoring/ScoreImporter.cs (L106-L110)

  as `StandardisedScoreMigrationTools.UpdateFromLegacy()` recomputes
  _both_ total score and accuracy.

  This makes a _semblance_ of sense as it attempts to make the accuracy
  of stable and lazer replays comparable. In most cases it also won't
  matter, as the only ruleset where accuracy changed between the legacy
  implementation and current lazer accuracy is mania.

  But it is also an inaccurate process (as, again, some of the required
  data is not in the replay, namely judgement counts of ticks
  and so on).

  For whatever's worth, a similar thing happens server-side in

  106c2948db/osu.Server.Queues.ScoreStatisticsProcessor/Commands/Queue/BatchInserter.cs (L319)

- However, _ranks_ of stable scores will still use the local stable
  reimplementation of ranks, i.e. a 1-miss stable score in osu! ruleset
  will be an A rather than an S. See importer:

  106c2948db/osu.Server.Queues.ScoreStatisticsProcessor/Commands/Queue/BatchInserter.cs (L237)

  (it's the same method which is renamed
  to `PopulateLegacyAccuracyAndRank()` in this commit).

  That is all a bit of a mess honestly, but I'm not sure where to even
  begin there...
2024-01-16 22:38:53 +01:00