Commit Graph

65071 Commits

Author SHA1 Message Date
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
Bartłomiej Dach
1075b87fb8
Add failing test coverage 2024-01-16 22:38:52 +01:00
Salman Ahmed
15a5fd7e4c
Merge pull request #26575 from bdach/touch-device-multiplayer
Fix touch device not always activating when it should
2024-01-16 22:35:59 +03:00
Salman Ahmed
e5f67173e5
Merge branch 'master' into touch-device-multiplayer 2024-01-16 22:09:17 +03:00
Bartłomiej Dach
b16152811d
Use until step instead 2024-01-16 17:54:49 +01:00
Dean Herbert
658fa14a92
Merge pull request #26562 from kyubxy/spinner-speed-fix
Make spinner-top and spinner-middle2 spin at different speeds to match stable
2024-01-17 01:24:36 +09:00
Bartłomiej Dach
a9d086c119
Fix touch device not always activating when it should
See https://github.com/ppy/osu/discussions/26574
2024-01-16 17:12:40 +01:00
Bartłomiej Dach
7a7548e89d
Add failing test coverage 2024-01-16 17:09:04 +01:00
Justin
7736445659
Merge branch 'master' into spinner-speed-fix 2024-01-17 01:40:53 +11:00
Bartłomiej Dach
c27f01dc14
Merge pull request #26565 from peppy/fix-leaderboard-display
Fix some elements not showing on leaderboard scores when almost off-screen
2024-01-16 11:30:52 +01:00
Bartłomiej Dach
cde0c0b2ee
Merge pull request #26561 from peppy/fix-catch-banana-health-bar
Fix argon health bar showing "miss" bar for bananas
2024-01-16 11:04:38 +01:00
Bartłomiej Dach
a3b7943e7d
Merge pull request #26560 from peppy/fix-skin-loss
Fix skin potentially being lost when opening and closing skin editor rapidly
2024-01-16 10:16:30 +01:00
Bartłomiej Dach
805a9b56ec
Merge pull request #26557 from peppy/fix-silver-s-ss
Fix silver S/SS not being awarded correctly
2024-01-16 10:03:20 +01:00
Dean Herbert
ee26329353
Fix some elements not showing on leaderboard scores when almost off-screen 2024-01-16 16:44:50 +09:00
Dean Herbert
2be8d66d4c
Fix argon health bar showing "miss" bar for bananas 2024-01-16 15:52:18 +09:00
Dean Herbert
57a6025a2c
Add helper method to bypass judgement woes 2024-01-16 15:52:05 +09:00
Dean Herbert
24a06e1d65
Merge pull request #26479 from EVAST9919/argon-health-rework
Rework `ArgonHealthDisplay` to use shaders
2024-01-16 15:27:31 +09:00
Dean Herbert
cd02d00c03
Fix skin potentially being lost when opening and closing skin editor rapidly 2024-01-16 15:23:07 +09:00
Dean Herbert
0e41d0c9cf
Add failing test coverage of skin getting nuked
This doesn't fail in headless unfortunately.

Run a few times manually to confirm.
2024-01-16 15:22:38 +09:00
Justin
e3ab7b1e9f Update disctop to use turnratio like stable 2024-01-16 17:22:22 +11:00
Dean Herbert
451ba1c861
Ensure PresentGameplay doesn't get stuck in loop if no beatmaps available 2024-01-16 15:13:08 +09:00
Dean Herbert
34905b2052
Apply NRT to new classes 2024-01-16 14:17:21 +09:00
Dean Herbert
e75f113a06
Update resources 2024-01-16 14:14:04 +09:00
Dean Herbert
1fd85b79db
Merge branch 'master' into argon-health-rework 2024-01-16 13:35:29 +09:00
Dean Herbert
2fdbc501c2
Merge pull request #26499 from OliBomby/slider-performance
Fix lag when dragging first slider control point in editor
2024-01-16 13:22:49 +09:00
Dean Herbert
902a5436f3
Fix silver S/SS not being awarded correctly 2024-01-16 13:21:15 +09:00
Dean Herbert
09e5b2fb46
Add test coverage of incorrect default state for Rank when hidden is applied 2024-01-16 13:21:15 +09:00
Bartłomiej Dach
40f612435d
Merge pull request #26178 from felipemarins/mod-search-text-box-select-all
Make mod search box text be selected when a new mod is selected/deselected
2024-01-15 20:08:02 +01:00
Bartłomiej Dach
71d0543213
Merge pull request #26545 from frenzibyte/fix-resume-cursor-transition-abused
Fix pop-in scale transition in resume overlay affecting input area
2024-01-15 20:06:16 +01:00
Bartłomiej Dach
744cb8e10c
Merge pull request #26538 from peppy/save-multiplayer-filter-mode
Remember multiplayer room filter mode
2024-01-15 19:53:50 +01:00
Bartłomiej Dach
a41108057f
Merge pull request #26287 from wooster0/no-scores-yet
Don't leave scores screen empty if no scores are present yet
2024-01-15 19:49:20 +01:00
Bartłomiej Dach
c5a276a7de
Merge pull request #26543 from peppy/offset-toast-limit
Only display offset toast when in local gameplay
2024-01-15 19:19:21 +01:00
Bartłomiej Dach
4d39c91972
Merge pull request #26449 from peppy/playlist-room-buttons
Allow interacting with playlist item buttons when not selected
2024-01-15 19:12:01 +01:00
Bartłomiej Dach
c46615839d
Only select all text in mod search text box if enter press selected anything 2024-01-15 19:09:50 +01:00
Bartłomiej Dach
c0d4ed4789
Add test coverage of select-all-text-in-search when nothing matched 2024-01-15 19:07:52 +01:00
Andrei Zavatski
8661edfc2f Organize consts better 2024-01-15 21:07:12 +03:00
Bartłomiej Dach
e8394e6f74
Add test coverage 2024-01-15 19:05:33 +01:00
Bartłomiej Dach
988794cf90
Improve test coverage for empty results 2024-01-15 18:49:41 +01:00
Bartłomiej Dach
9d2c82452c
Revert "simplify the code even more"
This reverts commit 9bc9db9138.
2024-01-15 18:47:49 +01:00
Bartłomiej Dach
8a839f64ed
Add failing test coverage for placeholder shown when it shouldn't be 2024-01-15 18:47:46 +01:00
Andrei Zavatski
c406135487 Merge branch 'master' into argon-health-rework 2024-01-15 20:40:19 +03:00
Bartłomiej Dach
d8d1d9264c
Fix test failure 2024-01-15 18:29:51 +01:00
Bartłomiej Dach
64e94a8b6c
Merge pull request #26544 from peppy/fix-background-dim-failure
Fix background dim occasionally getting in a bad state when exiting gameplay
2024-01-15 15:16:37 +01:00
Bartłomiej Dach
91f8144f98
Add test coverage 2024-01-15 14:58:46 +01:00
Dean Herbert
23815b2045
Merge pull request #26547 from bdach/cursor-ripple-pool-wrong
Fix cursor ripple pool not loading pooled drawables ahead of time
2024-01-15 22:56:50 +09:00
Bartłomiej Dach
c5351bd14d
Fix back-to-front set 2024-01-15 14:20:07 +01:00
Bartłomiej Dach
664035c796
Merge pull request #26546 from peppy/judgement-pooler
Fix judgement pooling not working correctly in osu!taiko and osu!mania
2024-01-15 14:02:52 +01:00
Bartłomiej Dach
d206acac63
Merge pull request #26540 from peppy/fix-double-counters
De-dupe displayed hits in judgement counter
2024-01-15 14:02:11 +01:00
Bartłomiej Dach
fe8540b441
Merge pull request #26541 from peppy/fix-collection-dropdown-crash
Fix collection dropdown crashing when all collections are deleted at once
2024-01-15 13:28:00 +01:00
Bartłomiej Dach
399fc8195a
Fix cursor ripple pool not loading pooled drawables ahead of time
Increment the counter over at
https://github.com/ppy/osu-framework/pull/6136.
2024-01-15 13:22:22 +01:00