1
0
mirror of https://github.com/ppy/osu.git synced 2025-02-13 02:23:18 +08:00
Commit Graph

1647 Commits

Author SHA1 Message Date
Bartłomiej Dach
20280cd195
Do not double up first control point of path 2025-01-31 09:01:42 +01:00
Bartłomiej Dach
b4f63da048
Move control point double-up logic to LegacyBeatmapExporter
Done for two reasons:

- During review it was requested for the logic to be moved out of
  `BezierConverter` as `BezierConverter` was intended to produce
  "lazer style" sliders with per-control-point curve types,
  as a future usability / code layering concern.

- It is also relevant for encode-decode stability. With how the logic
  was structured between the Bezier converter and the legacy beatmap
  encoder, the encoder would leave behind per-control-point Bezier curve
  specs that stable ignored, but subsequent encodes and decodes in lazer
  would end up multiplying the doubled-up control points ad nauseam.
  Instead, it is sufficient to only specify the curve type for the
  head control point as Bezier, not specify any further curve types
  later on, and instead just keep the double-up-control-point for new
  implicit segment logic which is enough to make stable cooperate
  (and also as close to outputting the slider exactly as stable would
  have produced it as we've ever been)
2025-01-30 15:28:47 +01:00
Dean Herbert
bf23c67603
Merge pull request #31509 from bdach/local-metadata-cache-corruption
Refetch local metadata cache if corruption is detected
2025-01-23 02:43:14 +09:00
Bartłomiej Dach
2623d8dcac
Merge pull request #31604 from peppy/fix-song-select-right-click-handling
Fix song select right click handling
2025-01-22 10:00:03 +01:00
Dean Herbert
26ef23c9a9
Remove outdated ef related catch-when usage 2025-01-22 17:04:30 +09:00
Dean Herbert
4cf4b8c73d
Switch IsImportant to init property isntead of virtual 2025-01-22 16:41:26 +09:00
Dean Herbert
66be9f2d1b
Remove right click default for absolute scroll 2025-01-21 17:24:41 +09:00
Dean Herbert
125d652dd8
Update realm xmldoc references 2025-01-08 01:35:56 +09:00
Dean Herbert
18ff25bc6d
Merge branch 'master' into upgrade-packages 2025-01-08 01:23:28 +09:00
Bartłomiej Dach
e9762422b3
Round object coordinates to nearest integers rather than truncating
Addresses https://github.com/ppy/osu/issues/31256.
2024-12-27 11:10:29 +01:00
Dean Herbert
2a374c0695
Add migration 2024-12-26 15:46:12 +09:00
Bartłomiej Dach
d9be172647
Add explanatory comment for schema version bump 2024-12-24 08:21:27 +01:00
Dean Herbert
9ff4a58fa3
Add migration to update users which have previous default bindings for beat snap 2024-12-23 22:14:03 +09:00
Bartłomiej Dach
4e4a99decc
Merge pull request #31076 from peppy/beatmap-store-interface
Access beatmap store via abstract base class
2024-12-11 17:48:32 +09:00
Dean Herbert
a868c33380
Remove BeatmapCarousel testing backdoor 2024-12-11 16:28:51 +09:00
Dean Herbert
c94b393e30
Access beatmap store via abstract base class
The intention here is to make things more testable going forward.
Specifically, to remove the "back-door" entrance into `BeatmapCarousel`
where `BeatmapSets` can be set by tests and bypas/block realm retrieval.
2024-12-11 16:28:51 +09:00
Salman Alshamrani
e0aec6f907 Revert unnecessary complexity 2024-12-11 01:03:55 -05:00
Salman Alshamrani
0c0dcb1e15 Use temporary storage for exported files on iOS 2024-12-09 08:16:37 -05:00
Huo Yaoyuan
d92ea910cf Merge branch 'master' into netcore-analyzer 2024-12-05 17:18:56 +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
Huo Yaoyuan
fa3c95c296 Merge branch 'master' 2024-11-30 01:07:08 +08:00
Dean Herbert
a719693d10
Fix one remaining method call 2024-11-29 21:21:05 +09:00
Dean Herbert
0e1b62ef85
Expose more migration helper methods
For use in https://github.com/ppy/osu-queue-score-statistics/pull/305.

Some of these might look a bit odd, but I personally still prefer having
them all in one central location.
2024-11-29 21:10:30 +09:00
Huo Yaoyuan
c57ace0b5f Enable recommended rules for documentation 2024-11-28 20:41:32 +08:00
Bartłomiej Dach
ead7e99c59
Fix incorrect comment 2024-11-22 11:06:36 +01:00
Dean Herbert
086a34f5c0
Merge branch 'master' into beatmap-info-purge 2024-11-22 18:47:32 +09:00
Dan Balasescu
53f0befc05
Merge pull request #30402 from peppy/import-paused-visibility
Update notification text when import is paused due to gameplay
2024-11-20 16:00:13 +09:00
Dean Herbert
ebc2cc3570
Ensure cleanup tasks are run even on a cancelled / exceptioned import task 2024-11-18 16:51:46 +09:00
Dean Herbert
2afd357901
Re-throw OperationCanceledException for consistency?
Mostly to see if it breaks anything.
2024-11-14 13:14:35 +09:00
OliBomby
b6eff38520 Fix timing point truncation in legacy beatmap export 2024-11-13 14:23:28 +01:00
Dean Herbert
ce86208e09
Merge branch 'master' into import-paused-visibility 2024-11-12 17:02:21 +09:00
Dan Balasescu
bd630c189e
Fix tests not working by forgoing beatmap updates 2024-11-07 17:26:10 +09:00
Bartłomiej Dach
0e52797f29
Prefer not deleted models when picking model instances for reuse when importing
This fell out while investigating why the issue with online IDs
mismatching in the `.osu` could be worked around by importing the map
three times in total when starting from it not being available locally.

Here follows an explanation of why that "helped".

Import 1:
- The beatmap set is imported normally.
- Online metadata population sees the online ID mismatch and resets it
  on the problematic beatmap.

Import 2:
- The existing beatmap set is found, but deemed not reusable
  because of the single beatmap having its ID reset to -1.
- The existing beatmap set is marked deleted, and all the IDs of
  its beatmaps are reset to -1.
- The beatmap set is reimported afresh.
- Online metadata population still sees the online ID mismatch
  and resets it on the problematic beatmap.

Note that at this point the first import *is still physically present
in the database* but marked deleted.

Import 3:
- When trying to find the existing beatmap set to see if it can be
  reused, *the one pending deletion and with its IDs reset -
  - the remnant from import 1 - is returned*.
- Because of this, `validateOnlineIds()` resets online IDs
  *on the model representing the current reimport*.
- The beatmap set is reimported yet again.
- With the online ID reset, the online metadata population check for
  online ID mismatch does not run because *the IDs were reset to -1*
  earlier.

Preferring undeleted models when picking the model instance for reuse
prevents this scenario.
2024-10-30 08:18:44 +01:00
Dean Herbert
61f0cfd688
Make flow more async to avoid any chance of deadlocks 2024-10-24 17:56:51 +09:00
Dean Herbert
be5cb209e5
Update notification text when import is paused due to gameplay
Addresses https://github.com/ppy/osu/discussions/30388.
2024-10-23 17:51:29 +09:00
Dean Herbert
6ea1623889
Merge branch 'master' into lookup-users-endpoint 2024-10-22 18:48:00 +09:00
Dean Herbert
cbaee98674
Don't delete scores when deleting beatmaps
The score model's spec allows for null `BeatmapInfo` so the reasoning of
the inline comment is no longer valid. We match based on hash these
days.
2024-10-22 01:39:05 +09:00
Bartłomiej Dach
f8a13b0beb
Fix migration not checking combination properly 2024-10-16 08:17:22 +02:00
Leander Furumo
035e5a9613
migrate clearance of conflicting ToggleFPSDisplay keybind 2024-10-14 16:03:29 +02:00
Dean Herbert
d836dba982
Rename and xmldoc RealmResetEmptySet 2024-10-09 14:18:34 +09:00
Bartłomiej Dach
b811b9baf6
Fix DetachedBeatmapStore special condition for detecting resets from blocking all operations failing on empty databases
See https://discord.com/channels/188630481301012481/188630652340404224/1293309912591368244.
2024-10-08 23:16:17 +02:00
Bartłomiej Dach
17bc5ce5a9
Use lookup request in user lookup cache
Doing this alleviates https://github.com/ppy/osu/issues/29982, as the
currently online display utilises the user lookup cache, and currently
is hitting rate limits due to the amount of data retrieved from the `GET
/users` endpoint. Switching to `GET /users/lookup` reduces the chance of
this happening.
2024-10-08 14:05:27 +02:00
Dean Herbert
8773c34fdd
Rename enum to non-plural now that it won't conflict 2024-10-01 19:55:46 +09:00
Dean Herbert
ad3007eaad
Adjust ILocalUserPlayInfo to expose whether gameplay is in a paused/break state 2024-10-01 17:53:46 +09:00
Dean Herbert
58fe502af4
Merge branch 'master' into beatmap-info-purge 2024-09-15 04:53:35 +09:00
Dean Herbert
562a5006ea
Change log output to only output when matches are found (in line with other methods) 2024-09-14 02:19:52 +09:00
Bartłomiej Dach
a4f6d4a300
Backpopulate missing ranked/submitted dates using new local metadata cache
People keep asking why https://github.com/ppy/osu/pull/29553 didn't fix
their databases (as stated in the PR, it didn't intend to), so this
should do it for them.
2024-09-13 16:00:49 +02:00
Dean Herbert
36a30cf077
Add note about using hard links in the future 2024-09-06 16:01:47 +09:00
Dean Herbert
de208fd5c3
Add very basic error handling for failed beatmap detach 2024-08-30 18:50:03 +09:00
Dean Herbert
2033a5e157
Add disposal of ManualResetEventSlim 2024-08-30 18:50:02 +09:00