1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-18 14:03:07 +08:00
Commit Graph

5460 Commits

Author SHA1 Message Date
Bartłomiej Dach
48196949e0
Add combo colour override control to editor
Closes https://github.com/ppy/osu/issues/25608.

Logic mostly matching stable. All operations are done on `ComboOffset`
which still makes overridden combo colours weirdly relatively dependent
on each other rather than them be an "absolute" choice, but alas...

As per stable, two consecutive new combos can use the same colour only
if they are separated by a break:

    52f3f75ed7/osu!/GameModes/Edit/Modes/EditorModeCompose.cs#L4564-L4571

This control is only available once the user has changed the combo
colours from defaults; additionally, only a single new combo object
must be selected for the colour selector to show up.
2025-01-10 13:40:56 +01:00
Dan Balasescu
38d95abc24
Merge pull request #31462 from bdach/ternary-button-is-bad
Simplify editor "ternary button" structure
2025-01-10 14:24:41 +09:00
Bartłomiej Dach
5c8ae6f851
Simplify editor "ternary button" structure
As I look into re-implementing the ability to choose combo colour for an
object (also known as "colourhax") from the editor UI, I stumble upon
these wretched ternary items again and sigh a deep sigh of annoyance.

The structure is overly rigid. `TernaryItem` does nothing that
`DrawableTernaryItem` couldn't, except make it more annoying to add
specific sub-variants of `DrawableTernaryItem` that could do more
things.

Yes you could sprinkle more levels of virtuals to
`CreateDrawableButton()` or something, but after all, as Saint Exupéry
says, "perfection is finally attained not when there is no longer
anything to add, but when there is no longer anything to take away."
So I'm leaning for taking one step towards perfection.
2025-01-09 13:41:22 +01:00
Dean Herbert
c8f72fdbe9
Fix rate adjustments changing the spacing between replay frames 2025-01-09 13:30:04 +09:00
Dan Balasescu
77d9c955ea
Merge pull request #31306 from bdach/aspire-slider-breakage
Fix slider event generator incorrectly not generating repeats when tick distance is zero
2025-01-07 11:50:18 +09:00
Andrei Zavatski
e8dc09f5bc Reduce HitSampleInfo constants allocations 2025-01-07 00:36:58 +03:00
Dean Herbert
cca63b599e
Always block scroll input above editor toolbox areas
Originally this was an intentional choice (see
https://github.com/ppy/osu/pull/18088) when these controls were more
transparent and didn't for a solid toolbox area.

But this is no longer the case, so for now let's always block scroll to
match user expectations.

Closes #31262.
2025-01-02 14:31:27 +09:00
Bartłomiej Dach
e7225399a2
Fix slider event generator incorrectly not generating repeats when tick distance is zero
RFC. This closes https://github.com/ppy/osu/issues/31186.

To explain why: The issue occurs on
https://osu.ppy.sh/beatmapsets/594828#osu/1258033, specifically on the
slider at time 128604. The failure site is

	fa0d2f4af2/osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/SliderCircleOverlay.cs (L65-L66)

wherein `LastRepeat` is `null`, even though the slider's `RepeatCount`
is 1 and thus `SpanCount` is 2.

In this case, `SliderEventGenerator` is given a non-zero `tickDistance`
but a zero `length`. The former is clamped to the latter:

	fa0d2f4af2/osu.Game/Rulesets/Objects/SliderEventGenerator.cs (L34)

Because of this, a whole block of code pertaining to tick generation
gets turned off, because of zero tick spacing - however, that block also
includes within it *repeat* generation, for seemingly very little reason
whatsoever:

	fa0d2f4af2/osu.Game/Rulesets/Objects/SliderEventGenerator.cs (L47-L77)

While a zero tick distance would indeed cause `generateTicks()` to loop
forever, it should have absolutely no effect on repeats.

While this *is* ultimately an aspire-tier bug caused by people pushing
things to limits, I do believe that in this case a fix is warranted
because of how hard the current behaviour violates invariants. I do not
like the possibility of having a slider with multiple spans and no
repeats.
2024-12-27 12:38:31 +01:00
Bartłomiej Dach
0d16ed028b
Add setters to hitobject coordinate interfaces 2024-12-27 11:01:47 +01:00
Dean Herbert
55dff1f0ef
Merge branch 'master' into skinnable-mod-display 2024-12-20 14:08:51 +09:00
Bartłomiej Dach
1057aa867f
Merge pull request #30984 from smoogipoo/fix-mania-spinner-conversion
Fix "spinner" conversion for mania-specific beatmaps
2024-12-19 15:30:10 +01:00
Bartłomiej Dach
459533aba6
Merge branch 'master' into bookmarks 2024-12-07 22:22:04 +09:00
Thomas Müller
0a00f7a7c2 Implement skinnable mod display
Also makes the mod display initialization sequence (start expanded, then
unexpand) controlled by HUDOverlay rather than mod display itself. This
enabled different treatment depending on whether the mod display is
viewed in the skin editor or in the player.

Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2024-12-07 12:06:33 +09:00
Dan Balasescu
8dda5aada8
Populate default LegacyType value on convert hitobjects
Normally not an issue, but some tests create their own hitobjects
deriving from `ConvertHitObject`.
2024-12-06 17:47:14 +09:00
Huo Yaoyuan
d92ea910cf Merge branch 'master' into netcore-analyzer 2024-12-05 17:18:56 +08:00
Bartłomiej Dach
808934581f
Move bookmarks out of BeatmapInfo
Not sure why I didn't do that in https://github.com/ppy/osu/pull/28473...
2024-12-03 14:17:14 +01:00
Huo Yaoyuan
7ece8ec1dc Update for suggestions 2024-12-03 00:03:59 +08:00
Dean Herbert
5b2558cec2
Merge pull request #28473 from bdach/beatmap-info-purge
Move unnecessary properties from `BeatmapInfo` / realm to `IBeatmap`
2024-12-02 16:19:12 +09:00
Dean Herbert
1e2e364cd3
Stop loudly logging backwards seek bug to sentry
Several users have reported stutters when this happens. It's potentially
from the error report overhead. We now know that this is a BASS level
issue anyway, so having this logging is not helpful.
2024-11-30 21:01:22 +09:00
Huo Yaoyuan
fa3c95c296 Merge branch 'master' 2024-11-30 01:07:08 +08:00
Bartłomiej Dach
110e4fbb30
Centralise supported file extensions to one helper class
As proposed in
https://github.com/ppy/osu-server-beatmap-submission/pull/5#discussion_r1861680837.
2024-11-29 08:42:45 +01:00
Huo Yaoyuan
f5a7716509 Apply minor performance rules 2024-11-28 20:41:44 +08:00
Dean Herbert
d6cf1db0f5
Add basic xmldoc to results class 2024-11-26 12:16:26 +09:00
Dean Herbert
d903d381d5
Rename NextProcessableIndex to EventCount in line with actual functionality 2024-11-26 12:10:34 +09:00
Dean Herbert
bbe8f2ec44
Only update unstable rate counter when an applicable hitobject is reached 2024-11-25 21:13:18 +09:00
Dean Herbert
ea68d4b33a
Use class instead of record for lower allocations 2024-11-25 21:13:18 +09:00
Dean Herbert
5668258182
Add incremental processing 2024-11-25 21:13:17 +09:00
Dean Herbert
33d725e889
Address unstable rate calculations as a list for marginal gains 2024-11-25 19:44:11 +09:00
Dean Herbert
605fe71f46
Make empty hitwindows readonly static and slightly improve comparison performance 2024-11-25 19:17:32 +09:00
Dean Herbert
086a34f5c0
Merge branch 'master' into beatmap-info-purge 2024-11-22 18:47:32 +09:00
Darius Wattimena
16158710f9 Made reading of ReadCurrentDistanceSnap public 2024-11-18 23:49:40 +01:00
Bartłomiej Dach
bd1d3cad49
Do not show timing distribution graph in offset control if there's not enough timed hits
Intended to address concerns raised in
https://github.com/ppy/osu/pull/30620#issuecomment-2475744164.
2024-11-14 13:17:03 +01:00
Dean Herbert
23167b0221
Merge pull request #30618 from Natelytle/ltca-broke-pp
Fix NaN PP counter values while SR is 0
2024-11-14 17:42:05 +09:00
Dean Herbert
7f8eebc510
Merge pull request #30578 from smoogipoo/beatmap-legacy-object-type
Simplify convertible hitobject parsing and add `IHasLegacyHitObjectType`
2024-11-14 16:16:44 +09:00
Nathen
d0e793a3b3 More correct but not too important 2024-11-14 01:50:05 -05:00
Nathen
2ea2e5f1db Be doubly careful 2024-11-14 01:47:24 -05:00
Nathen
ce818f59e7 Fix NaN PP values when SR is 0 2024-11-14 01:42:07 -05:00
Dean Herbert
7670a81181
Merge branch 'master' into bat-max-performance 2024-11-14 13:35:29 +09:00
Dan Balasescu
60d45d44bb
Merge pull request #30536 from stanriders/add-diffcalc-helpers
Add `DifficultyCalculationUtils`
2024-11-13 17:49:40 +09:00
Dean Herbert
78084e33af
Merge pull request #30411 from frenzibyte/editor-slider-touch-support-2
Fix placing objects via touch in editor not working sometimes
2024-11-13 15:09:57 +09:00
Dan Balasescu
8c68db0a36
Remove unused params 2024-11-11 16:10:15 +09:00
Dan Balasescu
7206e97b7b
Add IHasLegacyHitObjectType to ConvertHitObject 2024-11-11 16:10:15 +09:00
Dan Balasescu
e1d93a7d9c
Merge implementations of ConvertHitObjectParser
Having these be separate implementations sounded awesome at the time,
but it only ever led to confusion. There's no practical difference if,
for example, catch sees hitobjects with `IHasPosition` instead of
`IHasXPosition`.
2024-11-11 15:09:13 +09:00
StanR
c9d3b6557d Fix code issues 2024-11-07 21:23:26 +05:00
StanR
78c97d2cd7 Add DifficultyCalculationUtils 2024-11-07 20:36:00 +05:00
Jay Lawton
7c3a3c4d10 rename DifficultStrains for clarity 2024-11-07 21:56:42 +10:00
Jay Lawton
2b6a473164 update methods 2024-11-07 21:12:04 +10:00
Jay Lawton
a5e6da76cb introduce difficult strains globally 2024-11-07 19:53:53 +10:00
Dean Herbert
c99c82ab08
Merge pull request #30460 from Lawtrohux/t-speed-deviation
Implement stamina consideration for Mono (single-coloured) patterns.
2024-11-04 19:38:50 +09:00
Bartłomiej Dach
3dc2408965
Merge branch 'master' into bat-max-performance 2024-11-01 13:13:20 +01:00