1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-08 15:12:54 +08:00
Commit Graph

5478 Commits

Author SHA1 Message Date
Dean Herbert
cf3a379b1c
Merge pull request #31368 from frenzibyte/mobile-fix-mania
Improve osu!mania playability on mobile devices
2025-02-01 14:49:46 +09:00
Dan Balasescu
48b1c7398e
Merge pull request #31655 from bdach/deabstractify-editor-snap
Refactor editor object snapping to remove bad abstractions
2025-01-30 01:38:42 +09:00
Dean Herbert
d8ec3b77e4
Fix incremental unstable rate calculation not matching expectations
The `EventCount` variable wasn't factoring in that some results do not
affect unstable rate. It would therefore become more incorrect as the
play continued.

Closes https://github.com/ppy/osu/issues/31712.
2025-01-29 17:11:12 +09:00
Salman Alshamrani
ffc37cece0 Avoid extra unnecessary DI
Co-authored-by: Dean Herbert <pe@ppy.sh>
2025-01-25 19:12:42 -05:00
Bartłomiej Dach
daec91f61d
Refactor further to avoid weird non-virtual common method 2025-01-24 13:14:31 +01:00
Bartłomiej Dach
269ade178e
Fix tests 2025-01-24 11:59:07 +01:00
Bartłomiej Dach
32d341a468
Remove IPositionSnapProvider 2025-01-24 11:59:07 +01:00
Bartłomiej Dach
a6987f5c95
Remove dependence of placement blueprints on IPositionSnapProvider 2025-01-24 11:59:07 +01:00
Bartłomiej Dach
15b6e28ebe
Remove dependence of blueprint containers on IPositionSnapProvider 2025-01-24 11:59:05 +01:00
Dean Herbert
5cc8181bad
Expose GameplayStartTime in IGameplayClock 2025-01-24 15:29:49 +09:00
Dean Herbert
42e5cb58b7
Merge branch 'master' into mobile-fix-mania 2025-01-16 18:08:46 +09:00
Shawn Presser
6008c3138e Typo fix 2025-01-15 19:29:41 -06:00
Dean Herbert
ef7982fbfa
Merge pull request #31446 from EVAST9919/new-combo-editor
Fix performance degradation while trying to place object with a new combo in the editor.
2025-01-15 12:56:06 +09:00
Salman Alshamrani
c1ac27d658 Fix failing tests
- Caches `DrawableRuleset` in editor compose screen for mania playfield adjustment container (because it's used to wrap the blueprint container as well)
- Fixes `ManiaModWithPlayfieldCover` performing a no-longer-correct direct cast with a naive-but-working approach.
2025-01-12 22:56:40 -05:00
Salman Alshamrani
f121b03a78 Merge branch 'master' into mobile-fix-mania 2025-01-12 02:00:49 -05:00
Bartłomiej Dach
933f5db208
Merge branch 'master' into new-combo-editor 2025-01-10 14:13:14 +01:00
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
Andrei Zavatski
8f4eafea4e Fix combo properties multiple reassignments 2025-01-07 14:00:31 +03: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
Salman Alshamrani
7563a18c7f Allow locking orientation on iOS in certain circumstances 2024-12-29 22:15:21 -05: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