Leon Gebler
d81f270e21
Always encode perfect curves as explicit segments
2021-04-06 13:29:31 +02:00
smoogipoo
a2544100d4
Fix floating point error in slider path encoding
2021-04-06 14:10:59 +09:00
smoogipoo
d0510222ae
Fix legacy beatmap encoding
2021-04-05 19:59:54 +09:00
PercyDan54
dde255980b
Fix formatting
2021-04-03 12:45:42 +08:00
PercyDan54
bd7da9eb39
Make beatmap title use unicode
2021-04-03 12:43:17 +08:00
Dean Herbert
6d4d574a65
Fix exported replay filenames not having full metadata
2021-04-02 14:10:25 +09:00
Dean Herbert
4f8edcd336
Don't strip comments from metadata during parsin
2021-03-25 13:35:54 +09:00
Bartłomiej Dach
a16c0641b2
Revert EF Core to version 2.2
...
This reverts commit f3faad74d5
, reversing
changes made to 712e7bc7bf
.
Several issues arose after migrating to 5.0, including, but possibly not
limited to, performance regressions in song select, as well as failures
when attempting to save beatmaps after metadata changes in the editor.
2021-03-21 11:05:15 +01:00
Dean Herbert
0195d654ca
Increase the precision of speed multiplier to match osu-stable
2021-03-19 17:09:49 +09:00
Dan Balasescu
53ae24db9b
Merge pull request #12058 from peppy/fix-whitespace-in-ini
...
Fix skin parser not stripping whitespace before parsing
2021-03-18 18:46:28 +09:00
Dean Herbert
5b0d75ee56
Only trim trailing spaces to avoid breakage in storyboard parsing
2021-03-18 16:30:30 +09:00
Dean Herbert
bb3c3f302a
Fix skin parser not stripping whitespace before parsing
2021-03-18 15:36:11 +09:00
Dean Herbert
eda891223c
Start the editor with empty artist/creator/difficulty name fields
2021-03-17 16:47:12 +09:00
Dean Herbert
f3faad74d5
Merge pull request #12003 from UselessToucan/ef_core_5
2021-03-15 15:05:32 +09:00
Dean Herbert
6d4c1ba2ae
Fix a couple of new inspections introduced in Rider EAPs
2021-03-15 13:35:08 +09:00
Roman Kapustin
0a1e325fc7
Extract requerying of navigational properties from DbContext
2021-03-14 19:34:53 +03:00
Roman Kapustin
47b80d2474
Workaround InvalidOperation exceptions
2021-03-11 20:51:54 +03:00
Dean Herbert
b1cd01ceb8
Apply ConfigureAwait changes to game side
2021-03-08 14:36:35 +09:00
Dean Herbert
103dd4a6ce
Remove WorkingBeatmap's finalizer
2021-03-02 16:14:43 +09:00
Dan Balasescu
46ea0f44eb
Merge branch 'master' into beatmap-difficulty-cache-nullable
2021-02-25 22:52:15 +09:00
Dean Herbert
5fa9bf61b6
Update xmldoc
2021-02-25 16:22:40 +09:00
Dean Herbert
03771ce8ec
Allow determining a BeatmapDifficultyCache's bindable return's completion state via nullability
2021-02-25 16:19:01 +09:00
smoogipoo
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
Dean Herbert
dfedea9ea2
Move preview point logic to a specific method in WorkingBeatmap
2021-02-18 14:55:44 +09:00
Dean Herbert
e7308193e7
Add xmldoc explaining how PreviewTime is intended to work
2021-02-18 13:03:29 +09:00
Dean Herbert
a080a9bdbc
Merge pull request #11603 from Game4all/handle-stable-imports-custom-songs-folder
...
Handle beatmap import from a stable installation with a custom Songs directory
2021-02-12 21:42:36 +09:00
smoogipoo
a1be3c8bfd
Fix header background being invisible in multiplayer/playlists
2021-02-12 15:27:37 +09:00
Dean Herbert
5f23bd7259
Revert most of the changes to ArchiveModeManager by using better code
2021-02-12 12:48:32 +09:00
smoogipoo
18e3f8c233
Sort beat lengths rather than linear search
2021-02-08 19:03:19 +09:00
smoogipoo
b40b159acb
Round beatlength
2021-02-08 18:52:50 +09:00
smoogipoo
69ca440ae5
Merge branch 'master' into more-accurate-most-common-bpm
2021-02-08 18:40:58 +09:00
Bartłomiej Dach
b9a49d5589
Coerce undefined animation loop types to Forever
2021-01-31 15:43:58 +01:00
Dean Herbert
16f3d1815f
Fix SQLite exception thrown is a beatmap lookup is attempted without an OnlineBeatmapID present
...
It turns out the SQLite API isn't smart enough to handle nullables
directly, so we need to help it out a bit.
Stops the following from being thrown:
```
System.InvalidOperationException: Value must be set.
at Microsoft.Data.Sqlite.SqliteParameter.Bind(sqlite3_stmt stmt) = 3
at
at Microsoft.Data.Sqlite.SqliteParameterCollection.Bind(sqlite3_stmt
stmt) = 3 at
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior
behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
at
osu.Game.Beatmaps.BeatmapManager.BeatmapOnlineLookupQueue.checkLocalCache(BeatmapSetInfo
set, BeatmapInfo beatmap) in
/Users/dean/Projects/osu/osu.Game/Beatmaps/BeatmapManager_BeatmapOnlineLookupQueue.cs:line
166 = 166
```
2021-01-29 19:53:57 +09:00
Dean Herbert
c3d4044017
Avoid using Dapper to fix iOS compatibility of beatmap lookup cache
2021-01-28 16:53:56 +09:00
Lucas A
383c40b992
Address remaining reviews suggestions.
2021-01-26 20:35:42 +01:00
Lucas A
9f9206726a
Fix typos.
2021-01-26 18:11:54 +01:00
Dean Herbert
4ac362ee1a
Move cloning local to editor
2021-01-25 18:29:00 +09:00
Dean Herbert
f054b38105
Merge branch 'master' into revert-beatmap-controlpointinfo-cloning
2021-01-25 18:25:53 +09:00
Lucas A
51d4da565c
Fix ArchiveModelManagers lookup paths.
2021-01-24 22:25:49 +01:00
Salman Ahmed
acfb2d2980
Refactor beatmap set covers into using ModelBackedDrawable<T>
2021-01-24 00:32:33 +03:00
Salman Ahmed
d83abfa7d2
Add test scene with failing test case
2021-01-24 00:32:20 +03:00
Dean Herbert
edb6d3907b
Merge pull request #11472 from frenzibyte/explicit-beatmap-markers
...
Add explicit content markers to beatmap panels and overlay
2021-01-17 21:44:10 +09:00
Dean Herbert
d6e6b4bbee
Revert forced cloning of ControlPointInfo
...
This reverts commit 3c3e860dbc
.
Closes https://github.com/ppy/osu/issues/11491 .
2021-01-15 17:34:59 +09:00
smoogipoo
24e991a5ef
Actually return beat length and not BPM
2021-01-15 14:35:09 +09:00
smoogipoo
c6e9a6cd5a
Make most common BPM more accurate
2021-01-15 14:28:49 +09:00
Dean Herbert
8a0b975d71
Fix deadlock scenario when calculating fallback difficulty
...
The previous code would run a calcaulation for the beatmap's own ruleset
if the current one failed. While this does make sense, with the current
way we use this component (and the implementation flow) it is quite unsafe.
The to the call on `.Result` in the `catch` block, this would 100%
deadlock due to the thread concurrency of the `ThreadedTaskScheduler`
being 1. Even if the nested run could be run inline (it should be), the
task scheduler won't even get to the point of checking whether this is
feasible due to it being saturated by the already running task.
I'm not sure if we still need this fallback lookup logic. After removing
it, it's feasible that 0 stars will be returned during the scenario that
previously caused a deadlock, but I don't necessarily think this is
incorrect. There may be another reason for this needing to exist which
I'm not aware of (diffcalc?) but if that's the case we may want to move
the try-catch handling to the point of usage.
To reproduce the deadlock scenario with 100% success (the repro
instructions in the linked issue aren't that simple and require some
patience and good timing), the main portion of the lookup can be changed
to randomly trigger a nested lookup:
```
if (RNG.NextSingle() > 0.5f)
return GetAsync(new
DifficultyCacheLookup(key.Beatmap, key.Beatmap.Ruleset,
key.OrderedMods)).Result;
else
return new StarDifficulty(attributes);
```
After switching beatmap once or twice, pausing debug and viewing the
state of threads should show exactly what is going on.
2021-01-14 18:25:34 +09:00
Salman Ahmed
e8daea91d2
Add online beatmap "explicit content" property
2021-01-13 12:13:14 +03:00
smoogipoo
9a22df2b88
Fix BPM multiplier not working in all cases
2021-01-12 17:50:22 +09:00
Dean Herbert
3c3e860dbc
Move ControlPointInfo copying to base Beatmap.Clone method (and remove setter)
2021-01-07 23:52:04 +09:00
Dean Herbert
00dc98e3ab
Make legacy control point's BpmMultiplier setter private again
2021-01-07 19:06:52 +09:00
Dean Herbert
69ac22dd7f
Fix incorrectly copy pasted xmldoc
2021-01-07 19:06:10 +09:00
Dean Herbert
31a6e9b860
Remove unused using
2021-01-05 14:24:49 +09:00
Dean Herbert
afab35a31a
Fix missing copy implementation in LegacySampleControlPiont
2021-01-05 13:41:31 +09:00
Dean Herbert
caa88c6100
Use CreateCopy instead of Clone interface
...
I was going for conformity by using the IClonable interface, but it
doesn't look like we use it anywhere else in the project.
2021-01-05 13:13:52 +09:00
Dean Herbert
ba4e411422
Clone and copy ControlPointInfo when retrieving a playable beatmap
2021-01-04 16:37:07 +09:00
Dean Herbert
d7279dab40
Merge pull request #11226 from peppy/fix-legacy-skin-texture-loader-store
...
Fix incorrectly provided texture loader store to skins
2020-12-23 16:41:01 +09:00
Dean Herbert
807c1ecd1f
Refactor recommendation iteration code to read better
2020-12-22 14:57:32 +09:00
Dean Herbert
8cc2ed3fae
Move from OsuGameBase to OsuGame
...
Also moves to a more suitable namespace.
2020-12-22 14:28:27 +09:00
Dean Herbert
85518b4d99
Enforce non-null for BeatmapManager WorkingBeatmap resources
2020-12-22 12:06:10 +09:00
Dean Herbert
a97a2b2a66
Add nullability to BeatmapManager's GameHost reference
2020-12-22 12:03:25 +09:00
Dean Herbert
10c2745682
Add region specifications around implicit interface implementations
2020-12-22 12:01:09 +09:00
Dean Herbert
a5bcf1dc20
Expose resources to skin via interface (and share common pieces with beatmap)
2020-12-21 15:18:52 +09:00
Dean Herbert
0ffbe12fcc
Expose resources to beatmaps in a saner way
2020-12-21 14:22:34 +09:00
Dean Herbert
7c804be4d3
Rename textureStore to make its purpose more clear
2020-12-21 14:06:33 +09:00
Dean Herbert
a35060ea7a
Add a simple cache-busting query string to online.db retrieval
...
As we are finally pushing updates for this database, this adds a minimum
level of guarantee that a client will request a new version (without
having to worry about multiple levels of server-side caching).
2020-12-11 17:56:02 +09:00
smoogipoo
2150cf1c52
Rename parameters
2020-12-02 10:55:48 +09:00
smoogipoo
5760e1c1fc
Make HitSampleInfo immutable
2020-12-01 15:37:51 +09:00
Dean Herbert
25af091409
Fix storyboard animations of very old beatmaps playing too slow
...
Closes https://github.com/ppy/osu/issues/10772 .
2020-11-12 17:03:43 +09:00
Dean Herbert
6cc0bf17a9
Add explicit lock object and some xmldoc for clarity
2020-11-10 14:31:52 +09:00
smoogipoo
66ea1572c7
Fix unsafe list manipulation in BeatmapDifficultyCache
2020-11-10 01:10:00 +09:00
Dan Balasescu
a2877fb00a
Merge pull request #10730 from peppy/fix-patcher-no-object-crash
...
Fix legacy patcher crash on no objects present
2020-11-09 18:51:00 +09:00
Bartłomiej Dach
6d4bb4316c
Fix difficulty retrieval for online-sourced beatmaps
2020-11-08 00:12:25 +01:00
Dean Herbert
c5b6908e71
Always write [HitObjects] to file
...
I think this is expected. If not, there's an alternative solution.
2020-11-08 00:18:27 +09:00
Dean Herbert
c1c3d37720
Remove non-null assert
2020-11-06 17:24:28 +09:00
Dean Herbert
f51cb0dd14
Add ruleset fallback logic into cache lookup class
2020-11-06 16:58:53 +09:00
Dean Herbert
c5b172d0dd
Remove synchronous lookup path from BeatmapDifficultyCache
2020-11-06 14:53:15 +09:00
Dean Herbert
b69ada64e8
Update BeatmapDifficultyCache to use base implementation logic
2020-11-06 14:31:21 +09:00
Dean Herbert
517a656899
Move StarDifficulty to own file
2020-11-06 13:51:25 +09:00
Dean Herbert
74ca2faa31
Remove unused using
2020-11-06 13:48:06 +09:00
Dean Herbert
0103b12575
Add basic base class to begin to standardise function across caching components
2020-11-06 13:26:39 +09:00
Dean Herbert
5113d4af8f
Rename BeatmapDifficultyManager to BeatmapDifficultyCache
2020-11-06 13:14:29 +09:00
Dean Herbert
ab9e0aac58
Merge pull request #10258 from Game4all/results-dynamic-pp-calc
2020-11-02 15:40:55 +09:00
Dean Herbert
73b290aca3
Merge branch 'master' into results-dynamic-pp-calc
2020-11-02 14:47:33 +09:00
Dean Herbert
3adf451e82
Handle changes via SamplePoints list for simplicity
2020-11-02 14:40:40 +09:00
Bartłomiej Dach
3090b6ccb5
Resolve CA2249 inspections
...
"Use `string.Contains` instead of `string.IndexOf` to improve
readability"
2020-11-01 18:54:44 +01:00
Bartłomiej Dach
ca5de22ca5
Resolve CA1834 inspection
...
"Use `StringBuilder.Append(char)` instead of
`StringBuilder.Append(string)` when the input is a constant unit string"
2020-11-01 18:50:13 +01:00
Dean Herbert
89797d7a57
Merge pull request #9786 from Wieku/storyboard-skin-sprites
...
Allow storyboard elements to load textures from skins
2020-10-23 17:16:55 +09:00
Dean Herbert
9753dab93b
Remove IOnlineComponent and change existing components to use bindable flow
2020-10-22 14:19:12 +09:00
Bartłomiej Dach
e2552d4c36
Merge branch 'master' into storyboard-skin-sprites
2020-10-20 23:01:54 +02:00
Bartłomiej Dach
cdd56ece87
Read UseSkinSprites when decoding storyboards
2020-10-20 22:49:56 +02:00
Dan Balasescu
bd4e0e1a60
Merge branch 'master' into epilepsy-warning
2020-10-20 17:43:37 +09:00
Dan Balasescu
13060b8575
Merge branch 'master' into beatmap-carousel-less-diffcalc-stutter
2020-10-20 14:26:16 +09:00
Bartłomiej Dach
fd4bab85cf
Merge branch 'master' into epilepsy-warning
2020-10-20 01:06:46 +02:00
Bartłomiej Dach
1238e6c30f
Add flag value to database
...
Unfortunately required, as loadBeatmaps() refreshes the decoded beatmap
with the database-stored values, which can end up overwriting the
decoded ones.
2020-10-20 00:46:08 +02:00
Bartłomiej Dach
a9f27a71a2
Fix code formatting issues
2020-10-19 23:53:41 +02:00
Bartłomiej Dach
ba818e3ae0
Merge branch 'master' into results-dynamic-pp-calc
2020-10-19 21:41:07 +02:00
smoogipoo
dfbc0965e4
Merge branch 'master' into peppy/skinnable-health-display
2020-10-16 23:17:17 +09:00
Berkan Diler
fe3a23750c
Use char overloads for string methods
2020-10-16 11:52:29 +02:00
Dean Herbert
e89c5c3b3c
Add dynamic compile exceptions to fix skin test scenes
2020-10-16 17:08:46 +09:00
Dean Herbert
88ffcb9234
Update EndsWith usages
2020-10-16 12:58:34 +09:00
Dean Herbert
cc41845f56
Add missing string function ordinal specifications
2020-10-16 12:49:31 +09:00
Dean Herbert
07e6609e6d
Disable difficulty calculation for set-level difficulty icons
2020-10-14 14:16:22 +09:00
Bartłomiej Dach
1af17fbd5e
Merge branch 'master' into fix-early-break-cull
2020-10-13 18:02:08 +02:00
Bartłomiej Dach
7117fd0fba
Add xmldoc and nullability annotations
2020-10-12 21:44:04 +02:00
Bartłomiej Dach
779e6e10a7
Split ctors to avoid passing fields one by one
2020-10-12 21:43:14 +02:00
smoogipoo
ccf7e2c49a
Fallback to default ruleset star rating if conversion fails
2020-10-12 16:31:42 +09:00
smoogipoo
379971578d
Remove culling notice from HasEffect
2020-10-12 15:28:16 +09:00
Bartłomiej Dach
8af78656e4
Add precision tolerance to difficulty rating range checks
2020-10-10 18:15:52 +02:00
smoogipoo
d536a1f75e
Fix breaks being culled too early
2020-10-09 21:04:56 +09:00
Lucas A
7f5cf04b2b
Fix merge conflicts.
2020-10-07 13:28:49 +02:00
Dean Herbert
afe3d3989a
Force first hitobject to be a NewCombo in BeatmapProcessor preprocessing step
2020-10-06 22:10:13 +09:00
Dan Balasescu
783a463772
Merge branch 'master' into colourise-control-point-table
2020-10-05 20:47:06 +09:00
Dan Balasescu
051ea7eda9
Merge pull request #10329 from peppy/editor-file-drop-support
...
Add drag-drop support in editor setup screen for audio and background images
2020-10-05 20:05:41 +09:00
Dean Herbert
2ed43c14f8
Merge branch 'master' into editor-file-drop-support
2020-10-05 17:48:06 +09:00
Dean Herbert
365a38e92f
Merge branch 'master' into dynamic-difficulty-icon
2020-10-05 17:37:01 +09:00
Dean Herbert
50eca202f4
User IEnumerable for HandledExtensions
2020-10-02 16:17:10 +09:00
Dean Herbert
f501c88b46
Fix individual control points not being removed from group when group is removed
2020-10-02 15:28:21 +09:00
smoogipoo
40c153e705
Use component instead of drawable
2020-10-01 21:39:40 +09:00
smoogipoo
62b55c4c9c
Use static method, add xmldoc + link to wiki
2020-10-01 20:50:47 +09:00
Dean Herbert
e96e30a19d
Move control point colour specifications to common location and use for formatting timing screen table
2020-10-01 19:29:34 +09:00
smoogipoo
2213db2088
Use the given ruleset by default
2020-10-01 00:59:41 +09:00
smoogipoo
fde00d3431
Make DifficultyIcon support dynamic star rating
2020-10-01 00:53:25 +09:00
smoogipoo
917e8fc3ba
Add difficulty rating to StarDifficulty
2020-10-01 00:53:01 +09:00
Lucas A
2766cf73b4
Reuse BeatmapDifficultyManager cache for beatmap difficulty attributes.
2020-09-29 18:32:02 +02:00
Lucas A
ddede85704
Split performance calculation to its own class.
2020-09-27 12:44:29 +02:00
Lucas A
84cc6068f5
Remove unnecessary XMLDoc comment and remove unecessary implicit null parm
2020-09-27 09:25:01 +02:00
Lucas A
4d94bf3163
Rename CalculateScorePerformance -> CalculatePerformance
2020-09-25 19:16:33 +02:00
Lucas A
77a9d92f42
Add dynamic pp calculation to score panels for local scores
2020-09-25 19:15:40 +02:00
Lucas A
4d743f64f5
Add a method to calculate asynchronously performance on a beatmap.
2020-09-25 18:17:01 +02:00
Dean Herbert
50ba320a51
Expand available file operations in ArchiveModelManager
2020-09-25 13:16:30 +09:00
smoogipoo
de5ef8a471
Rework to support obsoletion
2020-09-17 21:37:32 +09:00
smoogipoo
e71991a53c
Add default token
2020-09-17 18:37:48 +09:00
smoogipoo
c7d24203ce
Make beatmap conversion support cancellation tokens
2020-09-17 17:40:05 +09:00
smoogipoo
be2d34d5dc
Merge branch 'master' into score-recalc
2020-09-09 21:31:31 +09:00
Dean Herbert
5b93752065
Merge pull request #10103 from smoogipoo/disable-online-lookups-tests
...
Disable online beatmap lookups in tests
2020-09-09 21:21:04 +09:00
smoogipoo
aeae009512
Disable online beatmap lookups in tests
2020-09-09 20:12:40 +09:00
smoogipoo
117c7ec6b2
Merge branch 'master' into score-recalc
2020-09-09 14:38:36 +09:00
Dean Herbert
2cd07b2d3c
Fix editor crash on saving more than once
...
I'm fixing this in the simplest way possible as this kind of issue is
specific to EF core, which may cease to exist quite soon. Turns out the
re-retrieval of the beatmap set causes concurrency confusion and wasn't
actually needed in my final iteration of the new beatmap logic.
2020-09-09 12:48:12 +09:00
Dean Herbert
6b50d44dde
Merge branch 'master' into editor-new-beatmap
2020-09-07 18:43:16 +09:00
Dean Herbert
4680728b9c
Merge branch 'master' into update-dcc-exclusions
2020-09-07 18:01:44 +09:00
smoogipoo
9ab6d584d3
Merge branch 'master' into editor-new-beatmap
2020-09-07 14:30:41 +09:00
Dan Balasescu
e17ccdfe9f
Merge branch 'master' into combo-colors
2020-09-07 13:55:41 +09:00
Bartłomiej Dach
f138b92078
Merge branch 'master' into editor-new-beatmap
2020-09-06 18:24:02 +02:00
smoogipoo
1143d5d992
Update class exclusion for dynamic compilation
2020-09-04 20:41:08 +09:00
Dean Herbert
25e142965d
Strongly type and expose default beatmap information icon implementations for other rulesets
2020-09-04 15:01:32 +09:00
Dean Herbert
fba253f131
Take user argument in CreateNew method parameters
2020-09-04 13:17:43 +09:00
Dean Herbert
f14a82e3a9
Remove unnecessary conversion
2020-09-04 13:13:53 +09:00
Dean Herbert
cd253ab055
Further tweaks to get closer to design originals
2020-09-04 13:05:39 +09:00
Dean Herbert
9d2dff2cb8
Add scale to allow legacy icons to display correctly sized
2020-09-04 12:55:39 +09:00
Dean Herbert
d32b77f045
Add missing extension to filename
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2020-09-03 21:33:25 +09:00