Andrei Zavatski
572f693eec
Fix failing tests related to slider ticks
2024-02-17 23:28:35 +03:00
Dean Herbert
0df6e8f595
Remove list allocations in UpdateNestedSamples
2024-02-18 03:23:34 +08:00
Dean Herbert
0714a4fc1e
Revert sample lookup logic that was not allocating anything
2024-02-18 03:18:50 +08:00
Andrei Zavatski
22f5a66c02
Reduce allocations during beatmap selection
2024-02-17 15:46:38 +03:00
Salman Ahmed
ce903987e7
Fix cursor ripples being added on release positions in replays
2024-02-17 00:53:53 +03:00
Bartłomiej Dach
7f76ff1f5d
Merge pull request #27145 from tsunyoku/legacy-relax-replays-key-presses
...
Create key-presses when watching legacy Relax replays
2024-02-14 10:06:06 +01:00
Bartłomiej Dach
22e9c4a3b5
Use private interface rather than weird inheritance
2024-02-13 10:20:06 +01:00
James Wilson
5101979ac0
only use LegacyReplayPressHandler
on legacy replays
2024-02-13 00:34:06 +00:00
tsunyoku
cc733ea809
add inline comment for supposedly backwards ternary
2024-02-12 18:00:05 +00:00
tsunyoku
2a02566283
refactor down
and wasLeft
management into respective PressHandler
classes
2024-02-12 17:45:00 +00:00
tsunyoku
581ae2f679
handle key presses when watching legacy relax replays
2024-02-12 12:51:35 +00:00
tsunyoku
c5f392c17d
only compute flashlight in osu! difficulty calculations when required
2024-02-10 15:25:03 +00:00
Bartłomiej Dach
6954a185c4
Merge branch 'master' into deselect-slider-adds-control-point-bug
2024-02-10 15:35:03 +01:00
Berkan Diler
6adf0ac01e
Use new LINQ Order() instead of OrderBy() when possible
2024-02-08 18:01:00 +01:00
Bartłomiej Dach
2a11d37995
Merge pull request #27062 from smoogipoo/fix-heatmap-offset
...
Fix hit accuracy heatmap points being offset
2024-02-06 18:02:30 +01:00
Dan Balasescu
891346f795
Fix hit accuracy heatmap points being offset
2024-02-06 21:56:52 +09:00
Dean Herbert
d784934bce
Merge pull request #26935 from bdach/new-mods-for-pp
...
Allow a few new mods and mod settings for pp
2024-02-06 20:54:20 +08:00
Bartłomiej Dach
a84f53b169
Allow pp for Blinds
...
The mod does impact pp, but it requires no extra difficulty attributes
(https://github.com/ppy/osu/pull/26935#issuecomment-1925734171 ).
2024-02-06 13:03:05 +01:00
Dan Balasescu
c18cd65081
Merge pull request #26694 from chandler14362/hit-object-result-allocations
...
Avoid closure allocations when applying hit object results
2024-02-06 17:49:26 +09:00
Bartłomiej Dach
c093fe6bcf
Merge pull request #26763 from frenzibyte/fix-relax-mod
...
Fix relax mod not respecting tracking state of sliders when triggering actions
2024-02-06 09:41:44 +01:00
kongehund
0da67e64b3
Fix deselecting slider adding control points
2024-02-06 00:28:39 +01:00
Bartłomiej Dach
f65449375e
Merge branch 'master' into scrolling-alloc
2024-02-05 19:59:47 +01:00
Bartłomiej Dach
3e29a9c334
Merge pull request #26877 from smoogipoo/adjust-default-minresult
...
Adjust default min result of `SliderTailHit`, remove override
2024-02-05 14:15:38 +01:00
Dean Herbert
cc5e1e0af3
Merge pull request #26957 from smoogipoo/net8
...
Update to .NET 8 + C# 12
2024-02-05 20:59:31 +08:00
Bartłomiej Dach
fb80d76b4a
Apply further changes to remove remaining weirdness
2024-02-05 13:37:38 +01:00
Bartłomiej Dach
39fe078984
Merge branch 'master' into hit-object-result-allocations
2024-02-05 13:24:10 +01:00
Bartłomiej Dach
efe6bb25b1
Refactor result application around again to remove requirement for fields
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-02-05 13:21:01 +01:00
Andrei Zavatski
e2e3c61c9c
Use AliveEntries where we don't need startTime order
2024-02-03 19:54:08 +03:00
Dan Balasescu
6e4d52863c
Upgrade to .NET 8 SDK
2024-02-02 21:28:51 +09:00
Bartłomiej Dach
f89923aeae
Annotate mods that give pp
2024-01-31 14:59:35 +01:00
Bartłomiej Dach
dfea2ade6d
Revert incorrect end position optimisation
...
Closes https://github.com/ppy/osu/issues/26867 .
Reverts 882f490390
and ce643aa68f
.
The applied optimisation may have been valid as long as it was
constrained to `Slider`. But it is not, as `SliderTailCircle` stores a
local copy of the object position. And as the commit message of
ce643aa68f
states, this could be bypassed
by some pretty hacky delegation from `SliderTailCircle.Position` to the
slider, but it'd also be pretty hacky because it would make flows like
`PositionBindable` break down.
Long-term solution is to probably remove bindables from hitobjects.
2024-01-31 12:45:42 +01:00
Dan Balasescu
0642a0ee11
Adjust default min result of SliderTailHit, remove override
2024-01-31 18:01:29 +09:00
Dean Herbert
fbc923b47e
Revert "Merge pull request #26870 from smoogipoo/adjust-default-minresult"
...
This reverts commit 1acff746ee
, reversing
changes made to 696ecda398
.
2024-01-31 17:51:38 +09:00
Dean Herbert
ebf637bd3c
Adjust slider tick / end misses to show slightly longer
2024-01-31 17:41:26 +09:00
Dan Balasescu
9b1bbe5f48
Adjust default min result of SliderTailHit, remove override
2024-01-31 16:12:05 +09:00
Bartłomiej Dach
2667cb8b36
Merge pull request #26703 from peppy/smaller-slider-misses
...
Adjust slider tick / end defaults again
2024-01-29 13:51:07 +01:00
Dean Herbert
a3199333bb
Merge pull request #26698 from EVAST9919/slider-sample-alloc
...
Reduce sliding sample allocations in `DrawableSlider`
2024-01-29 20:37:32 +09:00
Dean Herbert
034f8c0388
Also fix spinner case
2024-01-29 20:36:59 +09:00
Dean Herbert
760368709a
Mark some delegates as static because we can
2024-01-29 16:16:28 +09:00
Salman Ahmed
ee4fe1c068
Fix relax mod not handling objects close to a previous slider's follow area
2024-01-28 23:11:42 +03:00
Dean Herbert
b6fa50c312
Reduce allocation overheads in SliderInputManager
2024-01-26 17:49:20 +09:00
Chandler Stowell
93bd3ce5ae
update DrawableHitCircle.ApplyResult
to pass this
to its callback
2024-01-25 11:25:41 -05:00
Dean Herbert
fd9527d523
Remove weird red fade that didn't work
2024-01-25 19:31:57 +09:00
Dean Herbert
107b37494e
Update triangles skin judgment display
2024-01-25 19:31:57 +09:00
Dean Herbert
0175f6e0b8
Add new judgement drawable for argon slider misses
2024-01-25 19:31:57 +09:00
Dean Herbert
dda96d7106
Rename JudgementPiece
to TextJudgementPiece
2024-01-25 19:31:57 +09:00
Andrei Zavatski
21b11092d6
Fix slider sliding samples allocation
2024-01-25 04:06:15 +03:00
Chandler Stowell
d2775680e6
use stack to pass action state when applying hit results
...
this removes closure allocations
2024-01-24 13:13:45 -05:00
Dean Herbert
b272d34960
Merge pull request #26630 from peppy/s-rank-change
...
Change S rank to require no miss
2024-01-24 13:27:40 +09:00
Andrei Zavatski
da992ccc55
Implement per-axis triangles clamping
2024-01-23 04:54:27 +03:00
Bartłomiej Dach
cb8ec48717
Make RankFromScore()
's dictionary param readonly
...
Just to make sure nobody tries any "funny" business.
2024-01-22 19:56:30 +01:00
Bartłomiej Dach
5bae9074aa
Merge branch 'master' into s-rank-change
2024-01-22 19:54:53 +01:00
Dean Herbert
c8521b49cd
Change S rank to require no miss
2024-01-22 21:43:32 +09:00
Dean Herbert
47e9846315
Adjust slider tick / end miss animations to be less busy
2024-01-22 18:48:48 +09:00
Dean Herbert
993e733fce
Merge pull request #26598 from frenzibyte/fix-storyboard-sprites-2
...
Remove handling for non-legacy texture lookup paths in `LegacySkin`
2024-01-22 17:50:55 +09:00
Salman Ahmed
57b2d018a9
Fix slider sometimes not updating relative anchor position
2024-01-22 02:07:32 +03:00
Andrei Zavatski
1393f52b2b
Rename Masking to ClampToDrawable
2024-01-21 05:20:42 +03:00
Andrei Zavatski
e003ecb593
Change default masking value to true
2024-01-21 04:57:48 +03:00
Bartłomiej Dach
3853f63b74
Merge pull request #26567 from peppy/cusor-scale-rate
...
Fix cursor scale animation not matching stable on classic skins
2024-01-18 13:59:49 +01:00
Salman Ahmed
1527ab89ef
Refactor DefaultApproachCircle
/LegacyApproachCircle
to make sense
2024-01-18 11:16:26 +03:00
Salman Ahmed
06da7f74de
Merge branch 'master' into fix-storyboard-sprites-2
2024-01-17 18:43:25 +03:00
Salman Ahmed
eaa748f075
Remove unused using directive
2024-01-17 18:35:34 +03:00
Salman Ahmed
ed1e66b8f9
Fix enabling beatmap skin cause hitobjects to use LegacyApproachCircle
regardless of selected skin
2024-01-17 16:36:09 +03: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
d0e9402761
Fix flashlight not dimming if slider head is hit early
...
Closes https://github.com/ppy/osu/issues/26551
Fix is a bit nuclear (`OnUpdate` should be considered last resort),
but I don't see many better alternatives here as
`ApplyCustomUpdateState` does not work...
2024-01-16 18:56:50 +01:00
Justin
7736445659
Merge branch 'master' into spinner-speed-fix
2024-01-17 01:40:53 +11:00
Dean Herbert
c45daa373e
Fix cursor scale animation not matching stable on classic skins
2024-01-16 17:15:25 +09:00
Justin
e3ab7b1e9f
Update disctop to use turnratio like stable
2024-01-16 17:22:22 +11: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
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
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
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
OliBomby
96ffe8e737
change wording
2024-01-15 12:51:08 +01:00
Dean Herbert
6b844ed8b6
Split out judgement pooling concepts from OsuPlayfield
for reuse
2024-01-15 20:50:09 +09:00
OliBomby
86382f4408
Clarify comment
2024-01-15 12:49:40 +01:00
Salman Ahmed
13517869f6
Apply scale transitions in resume overlay cursor to local container
2024-01-15 14:03:23 +03:00
Dean Herbert
6c0e968727
Merge pull request #26512 from OliBomby/slider-pathtype-update
...
Fix glitchy path type correction for sliders in the editor
2024-01-15 16:19:24 +09:00
Bartłomiej Dach
0b2b1fc588
Fix flashlight dim being applied before slider start time
...
Closes https://github.com/ppy/osu/issues/26515 .
Compare https://github.com/ppy/osu/pull/26053 .
2024-01-14 13:05:02 +01:00
OliBomby
243b7b6fda
fix code quality
2024-01-13 23:17:38 +01:00
OliBomby
83e108071a
fix wrong path type being displayed
2024-01-13 22:51:33 +01:00
OliBomby
39908f5425
remove Validating event and instead call validation explicitly on edits
2024-01-13 22:39:09 +01:00
OliBomby
da4d83f8ca
remove the need for caching points in segment
2024-01-13 21:41:33 +01:00
OliBomby
b4f9878b46
working jank solution
2024-01-13 20:39:49 +01:00
OliBomby
f5d6d52d4c
Move logic for caching segments and updating path types to PathControlPointVisualiser
2024-01-13 14:47:40 +01:00
OliBomby
ce643aa68f
revert overwriting Position getter in SliderTailCircle
...
It would have very weird implications when combined with the position bindable which would be all wrong and stuff
2024-01-13 13:54:04 +01:00
OliBomby
fca9b1f536
Fix so it reacts to PathVersion with Scheduler
2024-01-13 12:50:39 +01:00
OliBomby
e1186080b8
simplify scheduling logic
2024-01-13 02:24:33 +01:00
OliBomby
5fa7f6ec53
make drawables that update from path version update once per frame
2024-01-13 02:21:32 +01:00
OliBomby
882f490390
lazy load slider tail position
2024-01-13 01:32:37 +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
5970a68e2d
Use invalidation based logic for child anchor position updpates in DrawableSlider
2024-01-09 14:17:33 +09:00
Dean Herbert
962c8ba4ac
Reset child anchor position cache on hitobject position change
2024-01-07 20:55:28 +09:00
Dean Herbert
5cc4a586ac
Avoid iteration over NestedHitObjects
in silder's Update
unless necessary
2024-01-07 14:31:22 +09:00
Dean Herbert
35eff639cb
Remove unnecessary second iteration over NestedHitObjects
2024-01-07 14:31:22 +09:00
Dean Herbert
ddc8a64764
Reduce spinner glow
...
It was horrible
2024-01-04 14:55:52 +09:00
Dean Herbert
94531807e4
Make slider ends show on results screen again
2024-01-02 17:01:32 +09:00
Dan Balasescu
17a531209c
Use SliderTailHit result for slider tails (non-classic-mod)
2023-12-30 10:38:47 +09:00
Dean Herbert
c7f10dbc74
Merge pull request #26148 from rushiiMachine/resumeoverlay-min-cursor-size
...
Force minimum cursor size for `OsuResumeOverlay`
2023-12-28 19:23:57 +09:00
rushiiMachine
cf39bb7a18
Fix spinner max bonus not respecting ISamplePlaybackDisabler
...
The spinner max bonus was loaded through SkinnableSound instead of PausableSkinnableSound, leading to it not respecting the case where sample playback is globally disabled through ISamplePlaybackDisabler, and can be easily heard in situations like during the catchup period after seeking using the ArgonSongProgressBar with song volume at 0
2023-12-27 12:55:49 -08:00
Bartłomiej Dach
288ac930e4
Use new icons in editor
...
Some that exist on figma are purposefully not used due to an editorial
request from @peppy.
2023-12-27 17:42:18 +01:00