1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 00:47:24 +08:00
Commit Graph

5838 Commits

Author SHA1 Message Date
tsunyoku
97fe59cb24 set Ranked to true for OsuModTraceable 2024-05-22 10:38:47 +01:00
Dean Herbert
d0b1ebff5a
Revert "Temporary rollback of framework / SDL3"
This reverts commit d7d569cf4e.
2024-05-22 16:29:39 +08:00
Dean Herbert
d7d569cf4e
Temporary rollback of framework / SDL3 2024-05-21 14:36:16 +08:00
Dan Balasescu
976c6c4f25
Merge pull request #28235 from tsunyoku/optimise-rhythm-evaluator-loop-logic
Reduce `Previous` calls in `RhythmEvaluator` by optimising loop logic
2024-05-20 20:31:46 +09:00
James Wilson
f31928875b Reduce Previous calls in RhythmEvaluator by optimising loop logic 2024-05-19 16:26:51 +01:00
James Wilson
609268786f remove unneeded extra Previous calls from RhythmEvaluator 2024-05-19 13:29:49 +01:00
Andrei Zavatski
614cbdf0a4 Reduce container nesting in PathControlPointPiece 2024-05-18 22:51:58 +03:00
OliBomby
8df5f22b4e Merge remote-tracking branch 'upstream/master' into scaling 2024-05-15 23:05:19 +02:00
Dan Balasescu
ff0c0d54c9
Fix taps on judged circles changing cursor position 2024-05-14 01:23:55 +09:00
Dan Balasescu
3b8b56cbcb
Apply required changes after framework masking updates 2024-05-09 20:18:53 +09:00
Andrei Zavatski
e319a3e885 Don't perform masking updates in PathControlPointVisualiser 2024-05-04 22:07:08 +03:00
Andrei Zavatski
cf313cd67f Use single path to display slider control point connections 2024-05-04 21:53:48 +03:00
Bartłomiej Dach
94275f148e
Fix adding slider control points via context menu not undoing correctly
Closes https://github.com/ppy/osu/issues/27985.
2024-04-25 09:01:47 +02:00
DavidBeh
8c2a4eb78a Fix formatting 2024-04-24 12:40:23 +02:00
DavidBeh
16190a4ed7 Made judgements follow DrawableOsuHitObjects. Enabled judgements for depth mod 2024-04-24 00:23:45 +02:00
DavidBeh
7dac5afd90 Enabled judgements for repel (but not in depth). Updated comments in repel, mag, depth 2024-04-23 23:57:27 +02:00
DavidBeh
f863ea30e1 Made judgements always on and disabled follow paths again 2024-04-23 23:31:23 +02:00
DavidBeh
3a914b9337 Fixed judgements with MG mod without causing side effects 2024-04-23 23:24:51 +02:00
DavidBeh
331f1f31b0 Attempt to position DrawableOsuJudgement based on its DrawableOsuHitObject instead of DrawableOsuHitObject.HitObject 2024-04-23 19:19:11 +02:00
DavidBeh
beee76d64a enabled and fixed judgements for the magnetised mod 2024-04-22 20:25:43 +02:00
Dean Herbert
fb1d20bd39
Comment in some clarification 2024-04-22 15:07:11 +08:00
Dan Balasescu
0170c04baf
Fix cursormiddle not using the same source as cursor 2024-04-22 15:01:28 +09:00
Dan Balasescu
40c48f903b
Add failing test 2024-04-22 15:01:28 +09:00
Dan Balasescu
362a7b2c77
Remove unused members from GameplaySkinComponentLookup 2024-04-19 18:03:13 +09:00
Bartłomiej Dach
e5e345712e
Fix resume overlay not appearing after pausing inside window but outside of actual playfield area
Related to https://github.com/ppy/osu/discussions/27871 (although does
not actually fix the issue with the pause button, _if_ it is to be
considered an issue - the problem there is that the gameplay cursor
gets hidden, so the other condition in the modified check takes over).

Regressed in
bce3bd55e5.
Reasoning for breakage is silent change in `this` when moving the
`Contains()` check (`DrawableRuleset` will encompass screen bounds,
while `OsuResumeOverlay` is only as big as the actual playfield).
2024-04-16 13:45:09 +02:00
Bartłomiej Dach
f9873968a5
Apply NRT in OsuResumeOverlay 2024-04-16 13:39:06 +02:00
Dan Balasescu
0e218ee271
Merge pull request #27148 from Givikap120/traceable_pp
Add Traceable performance calculation support
2024-04-16 04:54:57 +09:00
Givikap120
4a21ff9726 removed duplication 2024-04-13 13:59:09 +03:00
Givikap120
feb9b5bdb8 Make traceable pp match HD 2024-04-13 13:42:57 +03:00
Bartłomiej Dach
518addf323
Merge branch 'master' into fix-catmull-bulbs 2024-04-10 11:25:02 +02:00
Dean Herbert
94cbe1838f
Replace usages of is null with == null 2024-04-03 01:50:39 +08:00
Dean Herbert
51e9348d27
Merge pull request #26702 from honguyenminh/fix-rotate-editor-button-disabled
Fix rotate tool button in editor disabled when selecting 1 circle
2024-04-02 14:31:43 +08:00
Nguyên Minh Hồ
6642702fa9
Update plurals in editor rotate button tooltip
Co-authored-by: Joseph Madamba <madamba.joehu@outlook.com>
2024-04-02 12:36:44 +07:00
Dean Herbert
eca242c1c7
Change tooltip text slightly 2024-04-02 13:17:16 +08:00
Dean Herbert
ed5dd5c8cd
Bind using local bindables to avoid potentially event pollution 2024-04-02 13:04:34 +08:00
Dan Balasescu
4806ea54f1
Only optimise Catmull segments in osu ruleset 2024-04-01 17:22:50 +09:00
Dan Balasescu
099ad22a92
Use local bindable instead
Binding events directly to an external bindable will cause that
bindable to hold a permanent reference to the current object.

We use `GetBoundCopy()` or otherwise a local bindable + `.BindTo()` to create a
weak-referenced copy of the target bindable. When the local bindable's
lifetime expires, so does the external bindable's reference to it.
2024-04-01 15:31:35 +09:00
Nguyên Minh Hồ
1adba68357 Merge branch 'fix-rotate-editor-button-disabled' of https://github.com/honguyenminh/osu into fix-rotate-editor-button-disabled 2024-03-31 16:00:58 +07:00
Nguyên Minh Hồ
86def7e263
Change editor rotate button disabled tooltip text
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-03-31 16:00:47 +07:00
Arthur Araujo
450e7016bc Bind StackHeight changes to visual update methods 2024-03-30 21:23:05 -03:00
Nguyên Minh Hồ
b445e27ad6 Aggregate two CanRotate bindable for enabling the Rotate button 2024-03-30 17:54:27 +07:00
Nguyên Minh Hồ
6f782266b5 Fix inspection 2024-03-30 17:28:57 +07:00
Nguyên Minh Hồ
5d497ba4a8 Simplify TooltipText for EditorRadioButton 2024-03-30 16:04:22 +07:00
Nguyên Minh Hồ
8d6358a138 Fix editor rotation allowing spinner only bug 2024-03-30 16:02:31 +07:00
Nguyên Minh Hồ
9950395e5f Merge branch 'fix-rotate-editor-button-disabled' of https://github.com/honguyenminh/osu into fix-rotate-editor-button-disabled 2024-03-30 13:57:44 +07:00
Nguyên Minh Hồ
113dbcd10f
Merge branch 'master' into fix-rotate-editor-button-disabled 2024-03-30 13:56:31 +07:00
Bartłomiej Dach
21201e616d
Merge pull request #27723 from 64ArthurAraujo/editor-fix-reverse-selection
Fix reverse selection not updating new combo location
2024-03-28 11:25:17 +01:00
Bartłomiej Dach
2f786ffc32
Simplify implementation 2024-03-28 10:12:27 +01:00
Arthur Araujo
01a72d5afa Fix combo not reversing properly depending on the order of selection 2024-03-26 12:10:40 -03:00
Bartłomiej Dach
b74f8dba41
Merge branch 'master' into verify-abnormal-difficulty-settings 2024-03-26 11:13:16 +01:00
Bartłomiej Dach
1866b4b6b1
Refactor abstract check to reduce duplication 2024-03-26 11:13:03 +01:00
Bartłomiej Dach
9b923b1909
Fix code quality issues 2024-03-26 10:55:49 +01:00
Arthur Araujo
10683de578 Use order of new combo flags instead of StartTime 2024-03-26 04:59:47 -03:00
Arthur Araujo
78037fa477 Handle new combo on HandleReverse 2024-03-25 04:19:14 -03:00
Arthur Araujo
6fa663c8ca Make check ruleset specific 2024-03-22 14:48:22 -03:00
Dean Herbert
35df381717
Merge branch 'master' into tcm-resume 2024-03-20 01:25:40 +08:00
Bartłomiej Dach
c9bbeeb49a
Merge branch 'master' into heatmap-misses 2024-03-18 14:43:24 +01:00
Dan Balasescu
0beaa8e8c5
Merge branch 'master' into tcm-resume 2024-03-14 12:22:46 +09:00
Dan Balasescu
e0f1f70b82
Adjust NRT to prevent future issues
This way, it will yet at us if the setter is ever moved out of the ctor.
2024-03-11 15:52:40 +09:00
Dean Herbert
fc05268fc3
Apply NRT to DrawableOsuEditorRuleset too 2024-03-11 14:45:52 +08:00
Dean Herbert
091425db30
Fix nullability hint 2024-03-11 14:43:58 +08:00
Dean Herbert
f3d154a995
Add inline comment explaining optimisation 2024-03-11 11:28:15 +08:00
Dean Herbert
2be6d1f1c6
Apply NRT to OsuPlayfield 2024-03-11 11:26:03 +08:00
Andrei Zavatski
6ff4b1d7e3 Don't update SubTreeMasking in OsuPlayfield 2024-03-10 15:42:03 +03:00
Dean Herbert
fcc35a6acc
Fix cross-talk between pooled DrawableSliderRepeat usage causing incorrect rotation 2024-03-08 11:37:13 +08:00
Dean Herbert
646edb239a
Merge pull request #27429 from bdach/rewind-slider-tracking
Fix slider tracking state not restoring correctly in all cases on rewind
2024-03-07 22:41:12 +08:00
Bartłomiej Dach
3d8fdc52a4
Merge pull request #27501 from turbedi/throw_helper
Use ThrowHelper methods in more places
2024-03-07 11:36:21 +01:00
Dean Herbert
b53b752e54
Update usage of MathUtils 2024-03-06 12:13:12 +08:00
Dean Herbert
6455c0583b
Update usage of CircularProgress.Current 2024-03-06 12:13:10 +08:00
Berkan Diler
a891303484 Use ArgumentOutOfRangeException throw helper methods 2024-03-05 10:20:30 +01:00
Dan Balasescu
bce3bd55e5
Fix catch by moving cursor-specific handling local 2024-03-04 16:08:17 +09:00
Bartłomiej Dach
876b806423
Store tracking history to slider judgement result instead 2024-02-29 12:11:50 +01:00
Bartłomiej Dach
1d1db951f0
Reset slider input manager state completely on new object application
Kind of scary this wasn't happening already.

Mirrors `SpinnerRotationTracker`.
2024-02-29 11:59:19 +01:00
Bartłomiej Dach
d05b31933f
Fix slider tracking state not restoring correctly in all cases on rewind 2024-02-29 11:59:15 +01:00
Dean Herbert
4506ad23a0
Merge pull request #27401 from bdach/fix-slider-tail-dim
Fix slider tails sometimes not dimming correctly
2024-02-28 22:28:17 +08:00
Bartłomiej Dach
b5ce2642aa
Fix subscribing to ApplyCustomUpdateState too much 2024-02-28 13:20:41 +01:00
Bartłomiej Dach
71b1fbb9d0
Merge pull request #27383 from Detze/slider-border-thickness
Rewrite legacy slider path rendering to match stable better
2024-02-28 10:02:46 +01:00
Sheepposu
7687ab63ed fix code formatting 2024-02-27 22:03:45 -05:00
Sheepposu
29e5f409ba remove skinnable
better to add skinnable elements later
2024-02-27 21:51:54 -05:00
Salman Ahmed
b3aa9e25d2 Disable legacy slider AA for now 2024-02-27 23:18:29 +03:00
Bartłomiej Dach
bbdd85020c
Fix slider tails sometimes not dimming correctly
Originally noticed during review of another change:
https://github.com/ppy/osu/pull/27369#issuecomment-1966140198.

`DrawableOsuHitObject` tries to solve the initial dimming of objects
by applying transform to a list of dimmable parts. For plain drawables
this is safe, but if one of the parts is a DHO, it is not safe,
because drawable transforms can be cleared at will.

In particular, on first use of a drawable slider,
`UpdateInitialTransforms()` would fire via `LoadComplete()` on the
`DrawableSlider`, but *then*, also via `LoadComplete()`,
the `DrawableSliderTail` would update its own state and by doing so
inadvertently clear the dim transform just added by the slider.

To fix, ensure dim transforms are applied to DHOs
via `ApplyCustomUpdateState`.
2024-02-27 11:45:03 +01:00
Bartłomiej Dach
087a2a741a
Merge pull request #27369 from Detze/incorrect-slider-head-dim
Fix slider head being incorrectly dimmed twice
2024-02-27 11:17:34 +01:00
Salman Ahmed
83af9dfb39 Fix aa_width being incorrect 2024-02-27 02:43:02 +03:00
Salman Ahmed
18e26e39fe Remove SliderBorderSize for simplicity 2024-02-27 02:20:34 +03:00
Salman Ahmed
2f54775182 Add stable code references 2024-02-27 02:17:02 +03:00
Salman Ahmed
81e6a6d96a Rewrite LegacySliderBody rendering to perfectly match stable 2024-02-27 02:11:32 +03:00
Salman Ahmed
e01722a266 Revert "Match stable's slider border thickness more closely"
This reverts commit 3502ec456d.
2024-02-27 01:30:20 +03:00
Salman Ahmed
8363c39da8 Revert "Match stable's slider border thickness perfectly"
This reverts commit 8032ce9225.
2024-02-27 01:30:20 +03:00
Detze
8032ce9225 Match stable's slider border thickness perfectly 2024-02-26 18:37:27 +01:00
Detze
3502ec456d Match stable's slider border thickness more closely 2024-02-26 04:36:09 +01:00
Dean Herbert
e8d2abc4f7
Merge pull request #27364 from EVAST9919/spinner-alloc
Reduce osu spinner allocations
2024-02-25 09:36:02 +08:00
Dean Herbert
e12f8c03ee
Reset lastRecord on resetState for good measure 2024-02-25 08:18:19 +08:00
Detze
91d7bd1026 Don't dim slider head in DrawableSlider 2024-02-24 21:56:44 +01:00
Andrei Zavatski
9e90f7fb0d Store last enqueued RotationRecord in SpinnerSpmCalculator 2024-02-24 20:36:06 +03:00
Andrei Zavatski
1fb19e7129 Reduce allocations in DrawableSpinner 2024-02-24 20:18:30 +03:00
Dean Herbert
a3429986bc
Merge branch 'master' into spinner-stutter 2024-02-25 00:13:48 +08:00
Dean Herbert
824d671cce
Simplify implementation 2024-02-25 00:12:20 +08:00
Andrei Zavatski
2696620d12 Completely remove transform flow for spm counter 2024-02-24 17:09:49 +03:00
Andrei Zavatski
4bba0eaf4b Remove repeated TimeStarted check 2024-02-24 16:42:44 +03:00
Andrei Zavatski
9b526912e9 Fix incorrect operator 2024-02-24 16:41:53 +03:00
Andrei Zavatski
e7d8ca3292 Fix Argon and Trianles spinner stutter 2024-02-24 14:22:34 +03:00
Sheepposu
822ecb7106 remove unnecessary changes 2024-02-23 23:52:17 -05:00
Sheepposu
8cdd9c9ddc skinning changes
improve default design
2024-02-23 23:46:50 -05:00
Sheepposu
c95e85368f remove old files 2024-02-23 23:45:58 -05:00
Sheepposu
4d669c56a2 implement pooling
Uses pooling for all analysis objects and creates the lifetime entries from replay data when the analysis container is constructed.
2024-02-23 23:32:35 -05:00
Andrei Zavatski
31dabaefaa Reduce smoke allocations 2024-02-23 18:21:11 +03:00
Sheepposu
2a1fa8ccac fix OsuAnalysisSettings text not updating 2024-02-22 22:34:38 -05:00
Sheepposu
45444b39d4 fix formatting issues 2024-02-22 19:01:52 -05:00
Salman Ahmed
bbf3f6b56c Fix old-style legacy spinner fade in not matching stable 2024-02-22 16:31:13 +03:00
Sheepposu
af13389a9e fix hit marker skinnables 2024-02-22 07:31:56 -05:00
Sheepposu
35b89966bc revert mod visibility toggle 2024-02-21 23:23:40 -05:00
Dean Herbert
1f4ab7a0e8
Merge branch 'slider-input-alloc' into update-framework 2024-02-21 21:45:14 +08:00
Bartłomiej Dach
cd1acf1ef9
Merge pull request #27288 from peppy/fix-follow-circle-animation
Fix classic skin follow circles animating from incorrect starting point
2024-02-21 10:53:56 +01:00
Dean Herbert
a137fa5480
Fix classic skin follow circles animating from incorrect starting point 2024-02-21 15:43:53 +08:00
Dean Herbert
a11a83ac48
Improve comment regarding scale adjust of approach circles 2024-02-21 13:44:04 +08:00
Dean Herbert
86e3b597b4
Fix LegacyApproachCircle incorrectly applying scaling factor 2024-02-21 13:18:51 +08:00
Sheepposu
1d552e7c90 move skin component logic 2024-02-20 22:28:25 -05:00
Andrei Zavatski
3791ab30c4 Reduce allocations in HitCircleOverlapMarker 2024-02-19 20:55:43 +03:00
Andrei Zavatski
29900353d9 Reduce allocations in SliderSelectionBlueprint 2024-02-19 20:26:15 +03:00
Andrei Zavatski
3059ddf3b2 Fix allocations in SliderInputManager 2024-02-19 01:08:40 +03:00
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
Givikap120
5639155009 Update OsuModTraceable.cs 2024-02-12 23:31:00 +02:00
Givikap120
6402f23f02 Added Traceable support for pp 2024-02-12 21:00:15 +02: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
Sheepposu
288eed53df new features + improvements
Hit & aim markers are skinnable. Hidden can be toggled off. Aim line with skinnable color was added. The fadeout time is based on the approach rate. Cursor hide fixed.
2024-02-10 02:02:26 -05:00
Berkan Diler
6adf0ac01e Use new LINQ Order() instead of OrderBy() when possible 2024-02-08 18:01:00 +01:00
Dan Balasescu
1f13124b38
Always process position as long as it's hittable
For example... If a hitobject is pressed but the result is a shake, this
will stop processing hits.
2024-02-07 03:52:56 +09:00
Dan Balasescu
e2867986c5
Add xmldocs 2024-02-07 03:52:14 +09:00
Dan Balasescu
38f7913b31
Fix inverted condition 2024-02-07 03:50:56 +09:00
Dan Balasescu
9b8f206486
Enable NRT for DrawableHitCircle to clean up 2024-02-07 03:38:07 +09:00
Dan Balasescu
44b1515cc5
Remove LangVersion redefintions 2024-02-07 03:28:40 +09:00
Bartłomiej Dach
d150d69abf
Merge branch 'master' into heatmap-misses 2024-02-06 18:02:50 +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
99d716f8fc
Make miss points into crosses 2024-02-06 22:30:22 +09:00
Dan Balasescu
5850d6a578
Show near-misses on the results-screen heatmap 2024-02-06 22:30:22 +09: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
Sheppsu
d255976279
Merge branch 'ppy:master' into replay-analysis-settings 2024-02-06 03:13:09 -05: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
Sheepposu
b5dbf24d27 early replay analysis settings version
committing early version for others in the discussion to do their own testing with it
2024-02-01 10:19:09 -05: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
OliBomby
c2d57dc77c Merge remote-tracking branch 'upstream/master' into edit-nodesample 2024-01-25 11:33:29 +01: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
Nguyên Minh Hồ
d5b70ed09a Move CanRotatePlayfieldOrigin bindable to generic rotation handler 2024-01-25 16:58:44 +07:00
Nguyên Minh Hồ
2fa52de87a Fix formatting 2024-01-25 16:29:44 +07: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
Nguyên Minh Hồ
601ba9f194 Change rotate tool button to be enabled on single circle.
Inject osu ruleset specific rotate handler instead of generic handler.
2024-01-25 12:16:35 +07:00
Nguyên Minh Hồ
e1f8bc9692 Rename CanRotate property of SelectionRotationHandler to a more descriptive name 2024-01-25 12:10:50 +07: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
OliBomby
9b9485f656 fix adjust axes detection 2024-01-20 15:39:38 +01:00
OliBomby
1596776a81 fix imports 2024-01-20 15:15:49 +01:00
OliBomby
e1f3f7d988 fix possible NaN in clamped scale 2024-01-20 14:49:47 +01:00
OliBomby
a4f771ec08 refactor CanScale properties 2024-01-20 01:13:01 +01:00
OliBomby
26c0d1077a Refactor scale handling in editor to facilitate reuse 2024-01-20 00:22:53 +01: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
B3nn1
eea87090fb Make changeHandler save changes to PathTypes 2024-01-06 19:25:49 +01: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
OliBomby
460c584dca fix code quality 2024-01-01 16:21:33 +01:00
OliBomby
6bb72a9fcc Revert "Remove other grid types"
This reverts commit de14da95fa.
2024-01-01 15:46:07 +01:00
OliBomby
de14da95fa Remove other grid types 2024-01-01 15:44:20 +01:00
OliBomby
39f4a1aa8e conflict fixes 2024-01-01 15:34:05 +01:00
OliBomby
594b6fe167 Add back the old keybind for cycling grid spacing 2024-01-01 15:27:51 +01:00
OliBomby
20e338b892 also hide grid from points button when not hovered 2024-01-01 15:24:32 +01:00
OliBomby
33e559f835 add integer keyboard step to sliders 2024-01-01 15:22:56 +01:00
OliBomby
904ea2e436 move OutlineTriangle code down 2024-01-01 15:22:23 +01:00