1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-14 14:27:25 +08:00
Commit Graph

41603 Commits

Author SHA1 Message Date
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
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
82e7643df5
Update IPC usages
Of note, I've disabled IPC on visual test runners as we generally don't
use IPC in these cases. Having it set means that the game will not open
while visual tests are open, which has been a complaint from devs in the
past.
2024-01-18 19:45:36 +09:00
Bartłomiej Dach
2be989b9f5
Merge pull request #26542 from peppy/non-touch-fade-button
Fade hold-for-menu button out completely on non-touch devices
2024-01-18 11:27:50 +01:00
Dean Herbert
c9945b41c1
Remove rounding of slider velocity (when applied as scroll speed)
This affects both osu!taiko and osu!mania.

Closes https://github.com/ppy/osu/issues/25862.
2024-01-18 18:37:44 +09:00
Dean Herbert
fd9c7184e4
Only play back sample once when traversing up multiple screens in stack 2024-01-18 16:31:33 +09:00
Dean Herbert
ef0b5c9406
Stop playing back samples for nested screens in multiplayer
I'd argue this sounds better.
2024-01-18 16:31:20 +09:00
Dean Herbert
a756942f4d
Merge branch 'master' into fix-storyboard-sprites-2 2024-01-18 16:07:02 +09:00
Dean Herbert
ee3de9c522
Fix gameplay elements not correcly offsetting to avoid per-ruleset skin layout
Closes https://github.com/ppy/osu/issues/26601.
2024-01-18 15:44:27 +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
c362a93a36
Change frame stable catch-up method to allow for much faster sync 2024-01-18 14:01:37 +09:00
Andrei Zavatski
42e4c933d3 Fix ConstrainedIconContainer always using masking 2024-01-18 04:06:02 +03:00
Salman Ahmed
06da7f74de
Merge branch 'master' into fix-storyboard-sprites-2 2024-01-17 18:43:25 +03: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
Salman Ahmed
5597b48882 Fix storyboard animations stripping path directory on skin lookup 2024-01-17 18:39:48 +03: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
e54d20ea93 Remove ancient osu-resources lookup path from legacy skin textures 2024-01-17 16:33:14 +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
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
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
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
cc7be137bc
Show tooltip on global offset adjust slider bar 2024-01-17 17:57:49 +09:00
Dean Herbert
123e36a999
Change display text for beatmap audio offset adjust to make more sense 2024-01-17 17:51:46 +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
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
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
46429c5074 Schedule control point switch for settings modifications to apply first 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
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
Andrei Zavatski
dfdf700560 Don't use glowing text in ScoreComponentLabel 2024-01-16 17:43:17 +03:00
Andrei Zavatski
7920e93fa9 Rework GlowingSpriteText 2024-01-16 17:43:16 +03:00
Salman Ahmed
90da39c65d Fix helper method returning incorrect result 2024-01-16 14:27:30 +03: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
cdc6621f33
Allow adjusting volume controls via a drag 2024-01-16 16:37:05 +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
cd02d00c03
Fix skin potentially being lost when opening and closing skin editor rapidly 2024-01-16 15:23:07 +09: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
902a5436f3
Fix silver S/SS not being awarded correctly 2024-01-16 13:21:15 +09:00
Bartłomiej Dach
97e08f5071
Fix ColourHitErrorMeter not loading pooled drawables ahead of time 2024-01-15 21:40:07 +01: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
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
Andrei Zavatski
8661edfc2f Organize consts better 2024-01-15 21:07:12 +03:00
Bartłomiej Dach
9d2c82452c
Revert "simplify the code even more"
This reverts commit 9bc9db9138.
2024-01-15 18:47:49 +01:00
Andrei Zavatski
c406135487 Merge branch 'master' into argon-health-rework 2024-01-15 20:40:19 +03: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
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
cd9b6656ba
Merge pull request #26536 from peppy/cache-fonts
Fix gameplay counter textures not being cached ahead of time
2024-01-15 13:11:40 +01:00
Salman Ahmed
d346dd0650 Fix TestModReinstantiation failing due to custom mod being used 2024-01-15 15:01:13 +03:00
Salman Ahmed
1d7b63e204 Move checking logic inside ModUtils and somewhat optimise 2024-01-15 14:58:59 +03:00
wooster0
9bc9db9138 simplify the code even more 2024-01-15 20:58:43 +09:00
Dean Herbert
6b844ed8b6
Split out judgement pooling concepts from OsuPlayfield for reuse 2024-01-15 20:50:09 +09:00
Bartłomiej Dach
6dee2860d2
Merge branch 'master' into fix-multiplayer-mods-cheesing 2024-01-15 12:19:29 +01:00
StanR
e3989c854d Change LoginPanel to use LocalUser.Status for the dropdown 2024-01-15 16:57:22 +06:00
StanR
b86c883a5d Merge branch 'master' into user-rank-card 2024-01-15 16:37:48 +06:00
Bartłomiej Dach
9da3aeb28b
Merge pull request #26492 from frenzibyte/fix-system-mods-selected-on-free-mods-overlay
Fix touch device mod getting selected as a free mod in playlists
2024-01-15 11:29:37 +01:00
Dean Herbert
8e32780888
Fix background dim occasionally getting in a bad state when exiting gameplay 2024-01-15 19:21:19 +09:00
Dean Herbert
a3b63391fa
Merge pull request #26356 from stanriders/global-user-statistics
Add `Statistics` bindable to `IAPIProvider` and update it from `SoloStatisticsWatcher`
2024-01-15 18:43:35 +09:00
Dean Herbert
0aa8a20d57
Fix regression in interaction when panels are not selectable 2024-01-15 18:34:32 +09:00
Dean Herbert
2a2a4c416e
Only display offset toast when in local gameplay 2024-01-15 18:17:49 +09:00
Dean Herbert
52f8348ee3
Fade hold-for-menu button out completely on non-touch devices 2024-01-15 17:55:37 +09:00
Dean Herbert
0a522d260b
Fix collection dropdown crashing when all collections are deleted at once 2024-01-15 17:10:30 +09:00
Dean Herbert
e6453853c2
De-dupe displayed hits in judgement counter 2024-01-15 16:02:59 +09:00
Felipe Marins
d8962ddff8 Select all when pressing enter instead of every mod selection change 2024-01-15 03:22:52 -03:00
Dean Herbert
6940579b9e
Remember multiplayer room filter mode
As proposed in https://github.com/ppy/osu/discussions/26218.
2024-01-15 14:30:34 +09:00
Dean Herbert
a6c309b61a
Add more keywords 2024-01-15 14:12:39 +09:00
Dean Herbert
cd20561843
Adjust text slightly 2024-01-15 14:12:10 +09:00
Dean Herbert
093001438c
Merge branch 'master' into add-minimise-on-focus-loss-setting 2024-01-15 14:05:25 +09:00
Dean Herbert
0b5cc8fb10
Fix gameplay counter textures not being cached ahead of time
Part of https://github.com/ppy/osu/issues/26535.
2024-01-15 14:01:21 +09:00
Susko3
47b385c552 Move toolbar button padding to a const 2024-01-14 21:13:00 +01:00
Susko3
724b4c9507 Expand click target of toolbar buttons and clock 2024-01-14 21:09:49 +01:00
Bartłomiej Dach
e3ffea1b12
Merge pull request #26528 from peppy/update-framework
Update framework
2024-01-14 15:18:14 +01:00
Dean Herbert
4c6c849d26
Merge pull request #26522 from bdach/slider-tick-display
Show "slider end" statistic next to slider ticks on results screen (and use correct colour)
2024-01-14 23:17:40 +09:00
Dean Herbert
a8b301c618
Merge pull request #26526 from bdach/fix-date-display-failing
Fix date failing to display on leaderboard for some scores with weird datetimes
2024-01-14 22:56:32 +09:00
Salman Ahmed
13060c8698
Merge branch 'master' into slider-tick-display 2024-01-14 16:35:34 +03:00
Dean Herbert
fb4f8d0834
Update framework 2024-01-14 22:31:48 +09:00
Bartłomiej Dach
baf3867e17
Fix date failing to display on leaderboard for some scores with weird datetimes
Addresses https://github.com/ppy/osu/discussions/26517.

The score reported has a datetime of 0001/1/1 05:00:00 AM.

Bit of a dodge fix but maybe fine?
2024-01-14 13:52:39 +01:00
Bartłomiej Dach
1cd7656f33
Reorder hit results so that SliderTailHit is next to SmallTickHit
This addresses https://github.com/ppy/osu/discussions/26507.
2024-01-14 09:33:04 +01:00
Bartłomiej Dach
eecd868d66
Use darker blue for SliderTailHit result 2024-01-14 09:24:50 +01:00
Bartłomiej Dach
b7d74fda88
Revert "Keep editor in frame stable mode when possible" 2024-01-14 09:10:39 +01:00
Dean Herbert
68496f7a0e
Fix scores not showing up on leaderboards during gameplay 2024-01-14 15:13:20 +09:00
Salman Ahmed
0c02062780 Add guard against starting gameplay with invalid mod instances
Move guard to `Player` instead
2024-01-13 16:25:02 +03:00
Salman Ahmed
c514550dfa Fix multiplayer potentially selecting mods of wrong ruleset when starting match 2024-01-13 11:17:08 +03:00
Salman Ahmed
aebf246f62 Change select all mod buttons to check ValidForSelection instead of directly checking system mods 2024-01-13 09:43:50 +03:00
Salman Ahmed
c476843a83 Mark system mods as invalid for selection in mod select overlay 2024-01-13 09:43:20 +03:00
Dean Herbert
3d3f58c252
Merge pull request #26486 from peppy/update-framework
Update framework
2024-01-13 15:19:49 +09:00
Dean Herbert
0934cff501
Workaround implementation oversight
See https://github.com/ppy/osu-framework/pull/6130.
2024-01-13 15:19:02 +09:00
Dean Herbert
98fe9f32d8
Merge pull request #26484 from bdach/only-validate-playback-rate-when-submitting
Only validate playback rate when in submission context
2024-01-13 12:10:55 +09:00
Dean Herbert
58ade18c06
Update framework 2024-01-13 04:53:26 +09:00
Bartłomiej Dach
6572fa4378
Only validate playback rate when in submission context
Temporary workaround for https://github.com/ppy/osu/issues/26404.

It appears that some audio files do not behave well with BASS, leading
BASS to report a contradictory state of affairs (i.e. a track that is
in playing state but also not progressing). This appears to be related
to seeking specifically, therefore only enable the validation of
playback rate in the most sensitive contexts, namely when any sort of
score submission is involved.
2024-01-12 14:59:15 +01:00
Dean Herbert
02975b9498
Merge pull request #26471 from bdach/fix-incorrect-difficulty-peppy-stars
Fix incorrect score conversion on selected beatmaps due to incorrect `difficultyPeppyStars` rounding
2024-01-12 22:34:54 +09:00
Andrei Zavatski
c1e4e51a5f Add comment explaining negative container padding 2024-01-12 15:34:07 +03:00
Andrei Zavatski
8d4ba6d466 Remove PathPadding property 2024-01-12 15:30:19 +03:00
Bartłomiej Dach
593ca9f84f
Merge pull request #26468 from frenzibyte/fix-skin-parsing
Fix mania skin array decoder not handling malformed entries rigorously
2024-01-12 12:52:02 +01:00
Nitrous
ccbba8a00b
Avoid NRE due to a beatmap loading with no hit objects. 2024-01-12 17:19:59 +08:00
Nitrous
c545a9c242
remove extra new line 2024-01-12 15:13:38 +08:00
Nitrous
c404628113
move creation of PlaybackSettings to ReplayPlayer 2024-01-12 15:12:02 +08:00
Andrei Zavatski
e861661037 Remove invalidations in update
oops
2024-01-12 03:03:41 +03:00
Andrei Zavatski
101a26a53e Update start and end progress in one go 2024-01-12 02:54:07 +03:00
Andrei Zavatski
bbb36da323 Don't pass start and end progress to the background 2024-01-11 18:58:40 +03:00
Andrei Zavatski
d75bf55c58 CI fixes 2024-01-11 18:28:00 +03:00
Andrei Zavatski
f1db7db259 Implement ArgonHealthDisplayBar 2024-01-11 17:52:34 +03:00
Andrei Zavatski
90ab306a96 Implement ArgonHealthDisplayBackground 2024-01-11 17:52:33 +03:00
Bartłomiej Dach
b65d3baa8a
Merge branch 'master' into health-less-value-changed 2024-01-11 10:33:08 +01:00
Bartłomiej Dach
7c9adc7ad3
Fix incorrect score conversion on selected beatmaps due to incorrect difficultyPeppyStars rounding
Fixes issue that occurs on *about* 246 beatmaps and was first described
by me on discord:

    https://discord.com/channels/188630481301012481/188630652340404224/1154367700378865715

and then rediscovered again during work on
https://github.com/ppy/osu/pull/26405:

    https://gist.github.com/bdach/414d5289f65b0399fa8f9732245a4f7c#venenog-on-ultmate-end-by-blacky-overdose-631

It so happens that in stable, due to .NET Framework internals, float
math would be performed using x87 registers and opcodes.
.NET (Core) however uses SSE instructions on 32- and 64-bit words.
x87 registers are _80 bits_ wide. Which is notably wider than _both_
float and double. Therefore, on a significant number of beatmaps,
the rounding would not produce correct values due to insufficient
precision.

See following gist for corroboration of the above:

    https://gist.github.com/bdach/dcde58d5a3607b0408faa3aa2b67bf10

Thus, to crudely - but, seemingly accurately, after checking across
all ranked maps - emulate this, use `decimal`, which is slow, but has
bigger precision than `double`. The single known exception beatmap
in whose case this results in an incorrect result is

    https://osu.ppy.sh/beatmapsets/1156087#osu/2625853

which is considered an "acceptable casualty" of sorts.

Doing this requires some fooling of the compiler / runtime (see second
inline comment in new method). To corroborate that this is required,
you can try the following code snippet:

    Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3f).Select(x => x.ToString("X2"))));
    Console.WriteLine(string.Join(' ', BitConverter.GetBytes(1.3).Select(x => x.ToString("X2"))));
    Console.WriteLine();

    decimal d1 = (decimal)1.3f;
    decimal d2 = (decimal)1.3;
    decimal d3 = (decimal)(double)1.3f;

    Console.WriteLine(string.Join(' ', decimal.GetBits(d1).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
    Console.WriteLine(string.Join(' ', decimal.GetBits(d2).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));
    Console.WriteLine(string.Join(' ', decimal.GetBits(d3).SelectMany(BitConverter.GetBytes).Select(x => x.ToString("X2"))));

which will print

    66 66 A6 3F
    CD CC CC CC CC CC F4 3F

    0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
    0D 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00
    8C 5D 89 FB 3B 76 00 00 00 00 00 00 00 00 0E 00

Note that despite `d1` being converted from a less-precise floating-
-point value than `d2`, it still is represented 100% accurately as
a decimal number.

After applying this change, recomputation of legacy scoring attributes
for *all* rulesets will be required.
2024-01-10 19:30:18 +01:00
Dean Herbert
5d6f767dbd
Reduce excessive Color4 allocations during path colour updates 2024-01-11 00:31:39 +09:00
Salman Ahmed
7ca4d85441 Remove unnecessary AllowThousands flag
The flag is there to match `float.Parse` behaviour, but it's too illogical and unnecessary to have it.
2024-01-10 17:48:48 +03:00
Salman Ahmed
698ae66a49 Fix mania skin array decoder not handling malformed entries rigorously 2024-01-10 17:41:58 +03:00
Dean Herbert
49d13cda6b
Fix failing test by setting health on source of truth 2024-01-10 23:09:43 +09:00
Dean Herbert
91677158a0
Update framework 2024-01-10 22:33:00 +09:00
Dean Herbert
f912a1ba31
Merge branch 'master' into health-less-value-changed 2024-01-10 18:03:34 +09:00
Dean Herbert
a4c9e9f84d
Merge pull request #26405 from bdach/catch-scoring
Adjust catch scoring to match stable score V2
2024-01-10 01:28:56 +09:00
Bartłomiej Dach
8e133ed3ab
Merge pull request #26422 from peppy/allocs-off-the-charts
Preliminary fixes for off-the-charts allocations
2024-01-09 16:06:24 +01:00
Bartłomiej Dach
00a4c055b3
Merge branch 'master' into catch-scoring 2024-01-09 15:49:37 +01:00
Dean Herbert
eec9b6806a
Merge pull request #26434 from bdach/mania-conversion-accuracy
Fix mania score conversion using score V1 accuracy
2024-01-09 23:48:07 +09:00
Nitrous
484e9e8ee6
Fix binding order of IsPaused bindable and disable playback controls in spectator mode. 2024-01-09 22:09:20 +08:00
Bartłomiej Dach
a25223597b
Merge pull request #26456 from peppy/fix-missing-validation
Fix `SettingsToolboxGroup` allocating excessively due to missing cache validation
2024-01-09 14:36:14 +01:00
Bartłomiej Dach
8110c995dd
Merge branch 'master' into allocs-off-the-charts 2024-01-09 14:11:00 +01:00
Bartłomiej Dach
92ba770314
Fix missing wireframe behind percent sign on accuracy counter 2024-01-09 14:00:58 +01:00
Bartłomiej Dach
77bf6e3244
Fix missing wireframe behind "x" sign on combo counter display 2024-01-09 13:59:27 +01:00
Bartłomiej Dach
393d101bc2
Merge branch 'master' into realm-cleanup-overheads-fix 2024-01-09 13:35:22 +01:00
wooster0
8ad697ff4c apply some suggestions/corrections 2024-01-09 21:28:46 +09:00
Dean Herbert
4110adc4c0
Fix missing wireframe on argon combo counter 2024-01-09 20:16:28 +09:00
Bartłomiej Dach
a8a70be04a
Reference property via nameof rather than hardcoding 2024-01-09 11:49:42 +01:00
Dean Herbert
8324b75fa4
Merge pull request #26437 from bdach/song-select-logo-crash
Fix crash when clicking osu! logo in song select immediately after exiting
2024-01-09 19:40:19 +09:00
Bartłomiej Dach
cac0b0de6d
Remove unused using directive 2024-01-09 11:38:01 +01:00
Bartłomiej Dach
66b3945cd6
Move current screen check to better place 2024-01-09 10:44:30 +01:00
Dean Herbert
6ac1c799bd
Fix SettingsToolboxGroup allocating excessively due to missing cache validation 2024-01-09 18:34:20 +09:00
Dean Herbert
9c7e555237
Fix initial animation not playing correctly 2024-01-09 18:27:37 +09:00
Dean Herbert
80892f3167
Fix misses not displaying properly 2024-01-09 18:18:11 +09:00
Dean Herbert
b6505ba063
Reduce colour tween overhead and mark other calls of concern 2024-01-09 18:16:54 +09:00
Dean Herbert
12a59eb34c
Remove vertex update overheads 2024-01-09 17:35:01 +09:00
Nitrous
c081ca2145
Make field to a local. 2024-01-09 16:30:48 +08:00
Dean Herbert
b3533d270c
Remove delegate overhead of HealthBarValue/GlowBarValue 2024-01-09 17:20:49 +09:00
Nitrous
63961ea276
use RepeatingButtonBehavior for seek buttons 2024-01-09 16:08:29 +08:00
Dean Herbert
d83b8dbdaf
Refactor ArgonHealthDisplay to user interpolation and less bindable events 2024-01-09 16:50:27 +09:00
Dean Herbert
1837b31f9b
Remove usage of HealthDisplay.BindValueChanged
Health updates very often when using HP drain. Let's avoid bindable overheads.
2024-01-09 16:38:05 +09:00
Nitrous
bdecac6d79
Inverse check. 2024-01-09 15:19:54 +08:00
Nitrous
99c7685495
use GameplayClock.IsPaused bindable instead of polling in Update 2024-01-09 15:18:21 +08:00
Dean Herbert
19d1fff536
Use native query to avoid huge overheads when cleaning up realm files 2024-01-09 15:37:29 +09:00
Dean Herbert
f376bb5ec7
Merge pull request #26441 from Joehuu/fix-wiki-main-page-layout
Fix wiki main page not displaying custom layout
2024-01-09 14:51:49 +09:00
Dean Herbert
1f6e1cbe56
Allow interacting with playlist item buttons when not selected 2024-01-09 14:45:21 +09:00
Dean Herbert
765d41faa9
Change second occurrence of debug.assert with early return for fallback safety 2024-01-09 14:07:48 +09:00
Dean Herbert
3f5899dae0
Fix incorrect implementation of wireframe digits 2024-01-09 14:07:48 +09:00
Nitrous
afa808695b
Make resolved properties nullable. 2024-01-09 12:48:11 +08:00
Dean Herbert
6f8a3e15d8
Merge pull request #26382 from peppy/editor-more-frame-stable
Keep editor in frame stable mode when possible
2024-01-09 13:25:03 +09:00
Nitrous
2e041823a1
Perform null check on gameplay state. 2024-01-09 12:24:09 +08:00
Nitrous
bb2b7d3c31
Add playback controls. 2024-01-09 12:23:01 +08:00
Dean Herbert
743411d7c6
Merge pull request #26440 from bdach/incorrect-combo-proportion
Fix score conversion incorrectly assuming zero combo score in certain cases
2024-01-09 13:21:30 +09:00
Dean Herbert
3cdc3b5786
Merge branch 'master' into fix-wiki-main-page-layout 2024-01-09 13:14:36 +09:00
Dean Herbert
172fe53099
Use better method of ignore case comparison 2024-01-09 13:13:32 +09:00
Dean Herbert
06447e95aa
Merge pull request #26439 from bdach/do-not-attempt-score-upgrade-for-custom-rulesets
Do not attempt to recalculate non-legacy scores or scores set on custom rulesets
2024-01-09 13:08:31 +09:00
Joseph Madamba
d6ba7a9c6e Centralise INDEX_PATH to WikiOverlay 2024-01-08 14:28:16 -08:00
Joseph Madamba
58619f1684 Fix wiki main page not displaying custom layout 2024-01-08 14:16:05 -08:00
Bartłomiej Dach
4f7dcb3a50
Do not attempt to recalculate non-legacy scores or scores set on custom rulesets
Addresses discussions such as https://github.com/ppy/osu/discussions/26407
or https://github.com/ppy/osu/discussions/25914 wherein:

- the game would attempt to convert scores for custom rulesets, which
  makes no sense, especially so when they're not there,

- the game would also "recalculate" lazer scores, but that was never the
  intention or was never supported; the game would just increment the
  score version on those but still include them in the converted tally.
2024-01-08 22:47:13 +01:00
Bartłomiej Dach
aa83b84bb2
Fix Cinema mod being compatible with mods that can force failure
Addresses
https://github.com/ppy/osu/pull/26080#issuecomment-1868833214.
2024-01-08 22:34:41 +01:00
Bartłomiej Dach
67df7b33fb
Add failing test coverage for not attempting to upgrade custom ruleset scores 2024-01-08 22:10:08 +01:00
Bartłomiej Dach
58db39ec32
Fix crash when clicking osu! logo in song select immediately after exiting
Closes https://github.com/ppy/osu/issues/26415.

The crash report with incomplete log was backwards, the exit comes
first. Sentry events and the reproducing test in
8a87301c55 confirm this.
2024-01-08 21:37:25 +01:00
Bartłomiej Dach
c4ac53002c
Remove loop in combo score loss estimation calculation 2024-01-08 19:49:22 +01:00
Bartłomiej Dach
70ba5dd0d3
Merge pull request #26385 from peppy/carousel-thing
Fix beatmap carousel not preloading panels when off-screen
2024-01-08 19:37:34 +01:00
Dean Herbert
51bd32bf7e
Restore comment regarding usage of MinBy 2024-01-09 01:08:47 +09:00
Dean Herbert
e77d203a24
Refactor delayed load logic to hopefully read better 2024-01-09 01:08:17 +09:00
Bartłomiej Dach
8c82bb006c
Fix mania score conversion using score V1 accuracy
Partially addresses https://github.com/ppy/osu/discussions/26416

As pointed out in the discussion thread above, the total score
conversion process for mania was using accuracy directly from the
replay. In mania accuracy is calculated differently in score V1 than in
score V2, which meant that scores coming from stable were treated more
favourably (due to weighting GREAT and PERFECT equally).

To fix, recompute accuracy locally and use that for the accuracy
portion.

Note that this will still not be (and cannot be made) 100% accurate, as
in stable score V2, as well as in lazer, hold notes are *two*
judgements, not one as in stable score V1, meaning that full and correct
score statistics are not available without playing back the replay.

The effects of the change can be previewed on the following spreadsheet:

https://docs.google.com/spreadsheets/d/1wxD4UwLjwcr7n9y5Yq7EN0lgiLBN93kpd4gBnAlG-E0/edit#gid=1711190356

Top 5 changed scores with replays:

| score                                                                                                                            | master  | this PR | replay  |
| :------------------------------------------------------------------------------------------------------------------------------- | ------: | ------: | ------: |
| [Outlasted on Uwa!! So Holiday by toby fox [[4K] easy] (0.71\*)](https://osu.ppy.sh/scores/mania/460404716)                      | 935,917 | 927,269 | 920,579 |
| [ag0 on Emotional Uplifting Orchestral by bradbreeck [[4K] Rocket's Normal] (0.76\*)](https://osu.ppy.sh/scores/mania/453133066) | 921,636 | 913,535 | 875,549 |
| [rlarkgus on Zen Zen Zense by Gom (HoneyWorks) [[5K] Normal] (1.68\*)](https://osu.ppy.sh/scores/mania/458368312)                | 934,340 | 926,787 | 918,855 |
| [YuJJun on Harumachi Clover by R3 Music Box [4K Catastrophe] (1.80\*)](https://osu.ppy.sh/scores/mania/548215786)                | 918,606 | 911,111 | 885,454 |
| [Fritte on 45-byou by respon feat. Hatsune Miku & Megpoid [[5K] Normal] (1.52\*)](https://osu.ppy.sh/scores/mania/516079410)     | 900,024 | 892,569 | 907,456 |
2024-01-08 16:38:43 +01:00
Bartłomiej Dach
5337d999b5
Merge branch 'master' into disable-intro-track-pause 2024-01-08 12:54:37 +01:00
Bartłomiej Dach
b6ce57b777
Use override that was intended to steer global track control rather than local sets 2024-01-08 12:54:16 +01:00
Bartłomiej Dach
50eba9ebdb
Reduce code duplication in test 2024-01-08 12:52:14 +01:00
Bartłomiej Dach
3e9d222d67
Merge pull request #26409 from peppy/overall-ranking-overlap
Fix overall ranking text overlapping at some aspect ratios
2024-01-08 12:29:42 +01:00
Bartłomiej Dach
7b663a27bd
Fix score conversion incorrectly assuming zero combo score in certain cases 2024-01-08 10:47:22 +01:00
Dean Herbert
dc31c66f62
Return null on font lookup failure instead of asserting
Fallback weirdness.
2024-01-07 20:41:58 +09:00
Dean Herbert
16ea7f9b77
Avoid completely unnecessary string allocations in ArgonCounterTextComponent 2024-01-07 14:31:22 +09:00
Dean Herbert
9d9e6fcfdb
Remove LINQ calls in hot paths 2024-01-07 14:31:22 +09:00
Dean Herbert
b809d4c068
Remove delegate overhead from argon health display's animation updates 2024-01-07 14:31:22 +09:00
Dean Herbert
d3710f0bfd
Remove scores from song select leaderboard when leaving the screen 2024-01-06 20:53:20 +09:00
Dean Herbert
14a43375a7
Fix overall ranking text overlapping at some aspect ratios
Can't confirm on the actual ranking screen due to stuff not working.

Maybe it'll work tomorrow.

Closes https://github.com/ppy/osu/issues/26341.
2024-01-06 20:25:07 +09:00
Bartłomiej Dach
ea7078fab5
Implement approximate score conversion algorithm matching score V2 2024-01-05 20:46:11 +01:00
Bartłomiej Dach
8295ad1feb
Change catch scoring to match score V2 2024-01-05 20:46:11 +01:00
Zachary
091241634c Make IntroScreen set AllowTrackControl to false instead 2024-01-05 23:55:17 +10:00
Dean Herbert
fbc40ffc65
Merge pull request #26381 from Joehuu/flash-ongoing-operations-dialog
Flash blocking ongoing operations dialog when trying to force quit
2024-01-05 18:34:06 +09:00
Dean Herbert
e9289cfbe7
Reduce precision of audio balance adjustments during slider sliding 2024-01-05 02:26:30 +09:00
Dean Herbert
5b55ca6692
Cache legacy skin character glyph lookups to reduce string allocations 2024-01-05 02:26:30 +09:00
Dean Herbert
91bb3f6c57
Cache argon character glyph lookups to reduce string allocations 2024-01-05 01:24:00 +09:00
Zachary
9b734bac25 Allow track control after intro screen finishes. 2024-01-05 01:14:34 +10:00
Dean Herbert
35b9940c4e
Merge pull request #26140 from CaffeeLake/multiplier1x
Fix mod score multiplier rounding to 1.00x with specific mod combinations
2024-01-04 19:26:49 +09:00
Dean Herbert
81c6fd5589
Load items closer to the centre of the screen as a priority 2024-01-04 19:25:12 +09:00
Dean Herbert
adac3b65ce
Fix beatmap carousel not preloading panels when off-screen 2024-01-04 19:25:12 +09:00
Dean Herbert
b12011d501
Avoid rank updates after failing 2024-01-04 17:13:24 +09:00
Dean Herbert
a4dee1a01a
Don't unset Disabled on rank (never actually disabled?) 2024-01-04 17:13:24 +09:00
Dean Herbert
705f25e4b9
Make ScoreProcessor.Rank read-only 2024-01-04 17:13:24 +09:00
Dean Herbert
0bbc27e380
Add a gameplay configuration flag to disable fail animation 2024-01-04 17:13:24 +09:00
Dean Herbert
f0aeeeea96
...in a safer way 2024-01-04 17:13:21 +09:00
Dean Herbert
df99a37254
Fix another realm null inspection 2024-01-04 17:11:40 +09:00
Dean Herbert
0f11743fff
Merge pull request #26379 from wooster0/chat
Make chat command names case-insensitive
2024-01-04 16:17:42 +09:00
Dean Herbert
65c29b4f09
Make editor remain frame stable during normal playback 2024-01-04 15:47:16 +09:00
Joseph Madamba
ea714c86d4 Fix potential null reference with flash sample when exiting rapidly
Fixes `TestForceExitWithOperationInProgress()`.
2024-01-03 22:30:46 -08:00
Joseph Madamba
cd9bf0c753 Flash blocking ongoing operations dialog when trying to force quit 2024-01-03 22:30:46 -08:00
wooster0
cf5f0a2bdc Make chat commands case-insensitive
Would be nice if I accidentally have caps lock enabled and write "/HELP" it still works.
2024-01-04 15:06:10 +09:00
wooster0
659118c043 Fix wiki link path inconsistencies
If I access https://osu.ppy.sh/wiki/en/MAIN_PAGE or use any other
capitalization my browser always redirects me to
https://osu.ppy.sh/wiki/en/Main_page so I think Main_page is the
correct capitalization.

This might slightly reduce loading time? No idea though. Probably
negligible if so.
2024-01-04 12:20:51 +09:00
wooster0
2c64db0628 Use already existing message placeholder + localized string 2024-01-04 12:15:48 +09:00
CaffeeLake
c7b0a7ff69
Merge branch 'master' into multiplier1x 2024-01-04 05:04:23 +09:00
StanR
e240443c46 Update LocalUser statistics, add test 2024-01-03 18:15:32 +06:00
StanR
7262fef67f Add comments 2024-01-03 17:39:48 +06:00
CaffeeLake
8482d731c3
Merge branch 'master' into multiplier1x 2024-01-03 20:24:45 +09:00
Bartłomiej Dach
04147eb689
Fix lack of correct default value spec 2024-01-03 11:46:28 +01:00
StanR
d34f30f6ad Add Statistics bindable to IAPIProvider and update it from SoloStatisticsWatcher 2024-01-03 14:37:57 +06:00
StanR
3df7430d2e Bind UserRankPanel values to Statistics bindable in APIAccess 2024-01-03 14:32:32 +06:00
Bartłomiej Dach
e686a6a1dd
Fix player submission test intermittent failures due to audio playback discrepancy logic kicking in
See https://github.com/ppy/osu/actions/runs/7384457927/job/20087439457#step:5:133.
2024-01-03 09:17:01 +01:00
Dean Herbert
bdfaa4b583
Fix crash when dragging rotation control in editor with both mouse buttons
Closes https://github.com/ppy/osu/issues/26325.
2024-01-03 13:34:50 +09:00
Dean Herbert
18820e60b3
Merge pull request #26337 from bdach/persist-user-status-to-config
Store user online state in config for next launch
2024-01-03 13:21:31 +09:00
Dean Herbert
e4ba7b81b0
Merge pull request #26343 from adryzz/fix-discord-multiplayer-presence
update the current activity when the multiplayer room updates
2024-01-03 13:10:56 +09:00
Dean Herbert
4e7b1e1190
Merge pull request #26333 from bdach/retry-perfect-unobserved-error
Fix possible double score submission when auto-retrying via perfect mod
2024-01-03 13:02:38 +09:00
CaffeeLake
79ef032182
Merge branch 'master' into multiplier1x 2024-01-03 07:40:02 +09:00
StanR
c4be6fa974 Fix code quality, add new cards to the test scene 2024-01-03 00:37:24 +06:00
Lena
17656e9b9c
update the current activity when the multiplayer room updates 2024-01-02 18:38:25 +01:00
Dean Herbert
16c7c14602
Merge pull request #26332 from bdach/more-score-conversion-fail
Fix standardised score conversion failing for some taiko scores due to overestimating accuracy portion
2024-01-03 01:48:28 +09:00
StanR
5eaf5fca2a Add user card with global/country ranks for login overlay 2024-01-02 20:33:36 +06:00
Bartłomiej Dach
09b2a4e3b4
Fix users blipping online briefly before their online status is known 2024-01-02 14:07:59 +01:00