Huo Yaoyuan
e86ebd6cdb
Fix formatting
2024-02-29 00:24:24 +08:00
Huo Yaoyuan
470d2be2e1
The overhead of LINQ is not ignorable
2024-02-29 00:07:00 +08:00
Huo Yaoyuan
bcb91f348d
Use ArrayPool instead of stackalloc
2024-02-28 22:51:36 +08:00
Huo Yaoyuan
fe34577ee2
Update parsing.
2024-02-28 22:42:08 +08:00
Huo Yaoyuan
4bff54d35d
Add ToString on PathControlPoint for debugging
2024-02-28 22:37:14 +08:00
Huo Yaoyuan
f49aa4d815
Parse points and segments for path string
2024-02-28 22:01:39 +08:00
Bartłomiej Dach
46ec477191
Merge pull request #27386 from peppy/fix-use-current-distance-snap
...
Fix "Use current" snap not working
2024-02-26 12:30:35 +01:00
Bartłomiej Dach
353485a707
Merge branch 'master' into flashlight-playfield-based-size-
2024-02-26 10:55:06 +01:00
Bartłomiej Dach
115d82664b
Assert proportional scaling rather than assume average
...
Because if scaling is ever actually non-proportional then this should be
somewhat loud.
Also use the absolute value to prevent funny things happening if/when
someone does negative scale.
2024-02-26 10:53:04 +01:00
Dean Herbert
9a46e738bd
Fix inspections
2024-02-26 15:45:29 +08:00
Dean Herbert
4c744ccb69
Fix "Use current" snap not working
...
Regressed with https://github.com/ppy/osu/pull/27249 .
I was suspicious of this specific operation at the time but didn't test properly.
2024-02-26 14:11:54 +08:00
Andrei Zavatski
9e3defebda
Remove unused using
2024-02-25 19:05:40 +03:00
Andrei Zavatski
c3fa97d062
Reduce allocations in HitObjectLifetimeEntry
2024-02-25 18:02:42 +03:00
Dean Herbert
e8d2abc4f7
Merge pull request #27364 from EVAST9919/spinner-alloc
...
Reduce osu spinner allocations
2024-02-25 09:36:02 +08:00
Andrei Zavatski
1fb19e7129
Reduce allocations in DrawableSpinner
2024-02-24 20:18:30 +03:00
Dan Balasescu
006416057b
Merge pull request #27144 from cdwcgt/allow-muted-ranked
...
Allow pp for muted mod for any combination of settings
2024-02-25 00:31:37 +09:00
Andrei Zavatski
c758640311
Reduce allocations in ComposerDistanceSnapProvider
2024-02-19 20:49:56 +03:00
Dean Herbert
4d4d69521f
Merge pull request #27114 from EVAST9919/judgements-rework
...
Cache created judgement in `HitObject`
2024-02-18 18:07:58 +08:00
Dean Herbert
9655e8c48a
Adjust xmldoc slightly
2024-02-18 17:54:29 +08:00
Andrei Zavatski
22f5a66c02
Reduce allocations during beatmap selection
2024-02-17 15:46:38 +03:00
Andrei Zavatski
060b01eee8
Make CreateJudgement public again and add remarks
2024-02-16 20:24:02 +03:00
Andrei Zavatski
dd32c0a226
Merge branch 'master' into judgements-rework
2024-02-16 20:08:57 +03:00
Dean Herbert
c1d9f53ab4
Merge pull request #27068 from smoogipoo/mania-hd-fi-progression
...
Add progressive coverage for mania's Hidden and FadeIn mods
2024-02-16 01:00:53 +08:00
Dean Herbert
9e9297bfb3
Add inline documentation as to why classic mod is not ranked
...
See https://github.com/ppy/osu/pull/27149#issuecomment-1939509941 .
2024-02-15 13:22:54 +08:00
Bartłomiej Dach
2c0a5b7ef5
Fix missing tiny droplet not triggering fail with perfect on
...
Stable does this:
46cd3a10af/osu
!/GameplayElements/HitObjectManagerFruits.cs#L98-L102
I'd rather not say what I think about it doing that, since it's likely
to be unpublishable, but to approximate that, just make it so that
only the "default fail condition" is beholden to the weird ebbs
and flows of what the ruleset wants. This appears to fix the problem
case and I'm hoping it doesn't break something else but I'm like 50/50
on it happening anyway at this point. Just gotta add tests add nauseam.
2024-02-14 14:21:48 +01:00
Bartłomiej Dach
16d893d40c
Fix draining processor failing gameplay on bonus misses and ignore hits
2024-02-13 13:06:19 +01:00
cdwcgt
1944a12634
allow ModMuted
to ranked when setting adjusted
2024-02-12 21:18:31 +09:00
tsunyoku
901b82384d
replace linq usage in Previous
and Next
with more direct computation
2024-02-10 15:42:55 +00:00
Andrei Zavatski
c500264306
Cache created judgement in HitObject
2024-02-09 23:20:31 +03:00
Berkan Diler
6adf0ac01e
Use new LINQ Order() instead of OrderBy() when possible
2024-02-08 18:01:00 +01:00
Dan Balasescu
5bc7befbd4
Add progressive cover to mania HD and FI mods
2024-02-06 23:47:20 +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
8df593a8e6
Allow pp for No Scope
...
Deemed as not affecting difficulty or pp in
https://github.com/ppy/osu/pull/26935#issuecomment-1925644008 ,
so can be treated pretty much as nomod.
2024-02-06 13:04:19 +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
f65449375e
Merge branch 'master' into scrolling-alloc
2024-02-05 19:59:47 +01:00
Bartłomiej Dach
4b5348bbbf
Merge branch 'master' into ur-alloc
2024-02-05 19:14:08 +01:00
Bartłomiej Dach
7b03bebd5f
Move algorithm description to remarks section of xmldoc
2024-02-05 18:57:57 +01:00
Bartłomiej Dach
a5aeb2ff9e
Use better variable names
...
It's not the 1970s. We can spare a few extra letters.
2024-02-05 18:56:20 +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
Bartłomiej Dach
39fe078984
Merge branch 'master' into hit-object-result-allocations
2024-02-05 13:24:10 +01:00
Bartłomiej Dach
2976f225e0
Improve xmldoc of state
param
2024-02-05 13:22:58 +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
Bartłomiej Dach
83df6297d2
Merge branch 'master' into new-mods-for-pp
2024-02-04 12:20:31 +01:00
Dean Herbert
c64d414d1b
Merge pull request #26934 from bdach/which-mods-for-pp
...
Display which mods grant pp
2024-02-04 19:15:11 +08:00
Andrei Zavatski
4aa27482a9
Use SlimReadOnlyDictionaryWrapper for AliveEntries
2024-02-03 19:54:08 +03:00
Andrei Zavatski
57bc5ee04f
Improve readability
2024-02-03 00:19:04 +03:00
Andrei Zavatski
dde7e068a4
Incorporate new unstable rate algo
2024-02-02 22:46:52 +03:00
Dan Balasescu
b44f77cee1
Update R# + fix inspections
2024-02-02 21:00:28 +09:00
Andrei Zavatski
53c5483eba
Reduce allocation in Playfield
2024-02-02 04:53:48 +03:00
Bartłomiej Dach
ea76f7a5d8
Allow pp for Double/Half Time's "adjust pitch" setting
2024-02-01 22:33:49 +01:00
Bartłomiej Dach
96f66aaa2e
Allow pp for Accuracy Challenge
...
Addresses https://github.com/ppy/osu/discussions/26919 .
2024-02-01 22:30:26 +01:00
Bartłomiej Dach
c114fd8f89
Allow pp for Sudden Death and Perfect regardless of "restart on fail" setting
...
Closes https://github.com/ppy/osu/issues/26844 .
2024-02-01 22:28:49 +01:00
Bartłomiej Dach
f89923aeae
Annotate mods that give pp
2024-01-31 14:59:35 +01:00
Dan Balasescu
0642d74014
Expose as ReadOnlyDictionary
2024-01-31 22:52:57 +09:00
Bartłomiej Dach
e71c95f1fe
Reintroduce IMod.Ranked
...
What goes around, comes around.
2024-01-31 14:48:35 +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
Dan Balasescu
9b1bbe5f48
Adjust default min result of SliderTailHit, remove override
2024-01-31 16:12:05 +09:00
Andrei Zavatski
6b1de5446a
Reduce allocaations in ScrollingHitObjectContainer
2024-01-31 07:54:28 +03:00
Andrei Zavatski
3aefc91967
Make AliveDrawableMap public
2024-01-31 07:54:07 +03:00
Andrei Zavatski
87f853fcd2
Reduce overhead in ScrollingHitObjectContainer
2024-01-30 00:59:31 +03: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
a1fe5eedd5
Merge pull request #26751 from frenzibyte/fix-multiplayer-fail-freezing-score
...
Fix score processor no longer applying results when failing in multiplayer match
2024-01-29 19:51:31 +09:00
Dean Herbert
760368709a
Mark some delegates as static because we can
2024-01-29 16:16:28 +09:00
Dean Herbert
76832a1495
Remove ScorePerformanceCache
...
This class was only used in two places, both on the results screen, but
was holding references to `OsuPlayfield` game-wide (due to unrelated
issues, but still).
Because I can't really think of future use cases for this, and running
the calculation twice at results screen isn't a huge overhead, let's
just do that for now to keep things simple.
2024-01-29 15:28:20 +09:00
Dean Herbert
de32e7815b
Clean up DrawableHitObject
events on Dispose
...
This is just general safeties to avoid cases where
components don't correctly unbind events.
2024-01-29 15:28:20 +09:00
Salman Ahmed
64b61108ad
Move solution to multiplayer flow instead
2024-01-28 00:42:04 +03:00
Salman Ahmed
5f68999893
Fix TestSceneFailJudgement
asserts no longer being correct
2024-01-27 23:23:32 +03:00
Salman Ahmed
a25be9927d
Fix score processor no longer applying results when failing in multiplayer match
2024-01-27 23:23:10 +03:00
Dean Herbert
347e88f597
Add note about using static
callback
2024-01-26 16:21:48 +09:00
Chandler Stowell
93bd3ce5ae
update DrawableHitCircle.ApplyResult
to pass this
to its callback
2024-01-25 11:25:41 -05:00
Dean Herbert
107b37494e
Update triangles skin judgment display
2024-01-25 19:31:57 +09:00
Dean Herbert
dda96d7106
Rename JudgementPiece
to TextJudgementPiece
2024-01-25 19:31:57 +09:00
Nguyên Minh Hồ
94ada87cba
Un-hardcode tooltip from EditorRadioButton and add disabled tooltip for rotation popover
2024-01-25 14:32:48 +07:00
Nguyên Minh Hồ
500bed0121
Split editor toolbox radio button disabling logic from EditorRadioButton, then add disabling logic for rotate popover
2024-01-25 14:24:35 +07: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
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
Bartłomiej Dach
b85a861175
Merge pull request #26668 from peppy/adjust-tick-end-misses
...
Adjust slider tick / end miss animations to be less busy
2024-01-22 15:03:33 +01:00
Bartłomiej Dach
17d05b0fdf
Fix non-miss drawable judgements fading out instantly on triangles skin
...
`else if` proves to be insidious once again.
2024-01-22 14:23:46 +01:00
Dean Herbert
c8521b49cd
Change S rank to require no miss
2024-01-22 21:43:32 +09:00
Bartłomiej Dach
7f31070b87
Merge pull request #26648 from peppy/fix-followpoint-pooling
...
Fix `FollowPointConnection` pool filling up when follow points are hidden
2024-01-22 13:31:43 +01:00
Dean Herbert
47e9846315
Adjust slider tick / end miss animations to be less busy
2024-01-22 18:48:48 +09:00
Bartłomiej Dach
77ef12ebb0
Merge branch 'master' into frame-stable-catchup-zoom
2024-01-22 10:37:06 +01:00
Dean Herbert
1999e772f6
Fix FollowPointConnection
pool filling up when follow points are hidden
...
Closes https://github.com/ppy/osu/issues/26642 .
I think this applied to all pooling cases here.
2024-01-21 10:31:27 +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
c362a93a36
Change frame stable catch-up method to allow for much faster sync
2024-01-18 14:01:37 +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
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
Dean Herbert
57a6025a2c
Add helper method to bypass judgement woes
2024-01-16 15:52:05 +09:00
Dean Herbert
902a5436f3
Fix silver S/SS not being awarded correctly
2024-01-16 13:21:15 +09:00
Dean Herbert
6b844ed8b6
Split out judgement pooling concepts from OsuPlayfield
for reuse
2024-01-15 20:50:09 +09:00
Salman Ahmed
13060c8698
Merge branch 'master' into slider-tick-display
2024-01-14 16:35:34 +03: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
b7d74fda88
Revert "Keep editor in frame stable mode when possible"
2024-01-14 09:10:39 +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
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
00a4c055b3
Merge branch 'master' into catch-scoring
2024-01-09 15:49:37 +01:00
Bartłomiej Dach
8110c995dd
Merge branch 'master' into allocs-off-the-charts
2024-01-09 14:11:00 +01:00