1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 10:12:54 +08:00
Commit Graph

3143 Commits

Author SHA1 Message Date
Dean Herbert
040d0970f2
Use DifficultyRange helper method in one more place 2023-10-18 23:54:18 +09:00
Dean Herbert
3a5490892c
Centralise and repair circle size calculations game-wide 2023-10-18 19:50:42 +09:00
Dean Herbert
e081fa48a2
Fix various other inspections 2023-10-17 17:48:51 +09:00
Dean Herbert
2781846147
Fix beatmaps with no preview point set getting incorrect default
Note that this will require a re-import to fix existing beatmaps
becuse.. it's stored to realm. Probably not worth worrying about for
now.
2023-10-10 19:13:16 +09:00
Dean Herbert
f8455af0d0
Fix double interpolation being applied when applyOffsets=false 2023-10-05 13:20:52 +09:00
Dean Herbert
5a17a86d1d Merge branch 'master' into clock-fix-attempt-2 2023-10-04 16:57:49 +09:00
Dean Herbert
2481c0b64b Don't show replay import "missing beatmap" notifications during stable import
Closes https://github.com/ppy/osu/issues/24926.
2023-09-27 17:04:43 +09:00
Dean Herbert
d019cb5167 Update in line with framed clock changes 2023-09-22 22:02:18 +09:00
Dean Herbert
6629a47ed3 Fix FramedBeatmapClock's source not being processed 2023-09-22 16:22:35 +09:00
Dean Herbert
bf08fbe196 Set source directly in FramedBeatmapClock ctor
This isn't required, but avoids creating a temporary `StopwatchClock`
and generally just makes debug easier with less state changes.
2023-09-22 16:22:35 +09:00
Dean Herbert
0200b63fd3 Add note about beatmap offset not being reapplied correctly on ChangeSource 2023-09-22 14:41:07 +09:00
Dean Herbert
a451ab75dd Remove hopefully-unnecessary workaround
It was causing issues with the new implementation.
2023-09-22 14:41:05 +09:00
Dean Herbert
df08c4e1ad Disable decoupling for OsuGameBase's beatmap implementation
This avoids it ever mutating the underlying track (aka attempting to start
it). Resolves the one caveat mentioned in
aeef92fa710648d4a00edc523e13c17ac6104125.
2023-09-22 12:49:25 +09:00
Dean Herbert
5f634f2812 Remove unnecessary encapsulation workaround
The new implementation of `DecouplingClock` will not mutate the
underlying clock in any way (unless attempting to start it when
approaching from a negative time value).

This should be quite safe as a result.
2023-09-22 12:49:25 +09:00
Dean Herbert
21a2e27e5f Simplify some pieces of FramedBeatmapClock 2023-09-22 12:49:25 +09:00
Dean Herbert
04e6ec8715 Fix interpolation not being applied when applyOffsets is set 2023-09-22 12:49:25 +09:00
Dean Herbert
117cd74af6 Update usage of DecoupleableInterpolatingFramedClock in FramedBeatmapClock 2023-09-22 12:49:25 +09:00
Dean Herbert
600651795b Change FramedBeatmapClock to always be decoupled 2023-09-22 12:49:25 +09:00
Dean Herbert
bf984388b3 Update clocks in line with framework changes 2023-09-20 21:17:08 +09:00
Dean Herbert
067c487b21
Merge pull request #24450 from cdwcgt/missing-beatmap
Fetch missing beatmap when importing replay
2023-09-19 18:40:02 +09:00
Dean Herbert
05e05f8160 Increase transition speed slightly 2023-09-19 18:02:08 +09:00
Bartłomiej Dach
62f97a8d83
Adjust beatmap card thumbnail dim state to match web better 2023-09-19 10:28:08 +02:00
Dean Herbert
7f30354e61 Adjust sizing slightly to remove need for CollapsibleButtonContainerSlim 2023-09-19 17:20:58 +09:00
Bartłomiej Dach
8e199de78a
Tweak nano beatmap card UX further to meet expectations 2023-09-19 08:36:32 +02:00
Bartłomiej Dach
5fcd736332
Redo nano beatmap card design to fit needs better
Wanting to use this inside notification, it turns out that the original
design did not work very well at such narrow widths, and additionally
the typical button setup borrowed from elsewhere resulted in teeny tiny
action buttons.

To that end, slim down the design (get rid of thumbnail, audio preview,
make expandable right side slimmer), as well as change the entire panel
so that it has only one action associated with it at all times, and
clicking the panel in any place triggers that action.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
06d1a2a316
Merge branch 'beatmap-card-nano' into missing-beatmap 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
5c2413c06b
Implement nano beatmap card 2023-09-18 11:30:14 +02:00
Joseph Madamba
c2685da94c
Fix dummy beatmap showing AR 5 on song select 2023-09-15 20:26:17 -07:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point 2023-09-15 11:14:28 +02:00
Dean Herbert
541cd972e1 Rename ArchiveReader implementations to read better 2023-09-14 13:36:07 +09:00
Bartłomiej Dach
2bb869732e
Delete outdated warning disables 2023-09-07 18:47:01 +02:00
Dean Herbert
dcbdc114ce Remove precision limitations of SliderVelocity 2023-09-07 17:41:58 +09:00
Dean Herbert
b34a36f6ce Remove all usage of LegacyDifficultyControlPoint 2023-09-07 17:41:57 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Dean Herbert
034c887dcb Add animation support for beatmap status pills
To be used in conjunction with https://github.com/ppy/osu/pull/22116
2023-09-06 15:04:25 +09:00
cdwcgt
3decadaf51
use realm query 2023-09-04 17:13:46 +09:00
cdwcgt
dfecddbf5d
Merge branch 'master' into missing-beatmap 2023-09-04 12:41:23 +09:00
Bartłomiej Dach
c27f06c0a7
Merge branch 'master' into formats-nrt 2023-08-21 08:17:34 +02:00
Dean Herbert
5e0b89a1a8 Rename GetPath to GetFullPath to better match expectations 2023-08-18 17:56:43 +09:00
Dean Herbert
864f1bdb3e Move population of import time to the Populate method
Feels like a better place to be doing this. I think we want to keep any
kind of potentially expensive work in the `Populate` method.
2023-08-18 17:56:11 +09:00
Dean Herbert
eb2460d180 Remove dead metadata transfer code 2023-08-18 17:40:00 +09:00
Krzysztof Gutkowski
59abb59ee8 Set correct date added value when importing stable beatmapsets 2023-08-17 00:49:48 +02:00
Dean Herbert
49fc9655d2 Apply NRT to osu.Game.Betamaps.Formats namespace 2023-08-16 19:37:24 +09:00
Bartłomiej Dach
37361cd683
Repurpose Flat{File -> }WorkingBeatmap 2023-08-12 00:49:42 +02:00
Dean Herbert
75c1d5ad7f Add lenience to FramedBeatmapClock workaround 2023-08-02 18:49:24 +09:00
cdwcgt
c07a1ec91e
retrun DefaultBeatmap when beatmapset already delete pending
reimplement https://github.com/ppy/osu/pull/22741
2023-08-02 17:58:17 +09:00
Bartłomiej Dach
57ccf82f34
Merge branch 'master' into song-select-drain-length 2023-07-25 22:40:45 +02:00
Bartłomiej Dach
3b9f250c1b
Merge branch 'master' into menu-star-fountains 2023-07-25 21:58:13 +02:00
Dean Herbert
9cfe9164fa Add helper method to get drain length (and rename some usages) 2023-07-25 16:58:41 +09:00
Bartłomiej Dach
f3a95d4c13
Merge branch 'master' into menu-star-fountains 2023-07-19 21:26:41 +02:00
OliBomby
5d82190b70 Merge remote-tracking branch 'upstream/master' into legacy-export 2023-07-18 12:18:49 +02:00
Dean Herbert
e6e66c6aef
Remove mention of clock being nullable in IBeatSyncProvider
Co-authored-by: Susko3 <Susko3@protonmail.com>
2023-07-18 13:08:23 +09:00
Dean Herbert
20e4e2581a Change IBeatSyncProvider.Clock to always be non-null 2023-07-13 22:13:40 +09:00
OliBomby
cde8d8e7f1 Optimize realm transactions for editor Save action 2023-07-13 14:33:21 +02:00
OliBomby
1d837a8725 Move all conversion code to LegacyBeatmapExporter 2023-07-13 00:20:01 +02:00
OliBomby
8ca801a224 dispose the streams 2023-07-12 15:18:16 +02:00
OliBomby
3052c317e1 change .osz2 to .olz (osu lazer zip) 2023-07-12 15:04:06 +02:00
OliBomby
b577b6b6ae Export legacy converted beatmaps as .osz and non-converted beatmaps as .osz2 2023-07-11 21:04:09 +02:00
OliBomby
2db25722cb It works now 2023-07-11 20:18:54 +02:00
OliBomby
06e5ef88c0 legacy export broken 2023-07-11 02:30:16 +02:00
Bartłomiej Dach
10ba04512d
Add ScoreV2 to LegacyMods 2023-07-09 16:06:05 +02:00
Bartłomiej Dach
832c1c0009
Merge branch 'master' into fix-gameplay-samepl-trigger-source-rewind 2023-07-08 13:33:04 +02:00
Dean Herbert
d72765b6f8
Merge pull request #24114 from peppy/editor-save-local-score-management
Ensure scores always have the correct linked `BeatmapInfo`
2023-07-07 15:40:54 +09:00
Dean Herbert
2e98ab0a48 Expose rewinding state of IGameplayClocks
The implementation of this requires a bit of a special case
for 0, so makes sense to implement in a central place.
2023-07-06 19:08:42 +09:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Dean Herbert
64fc5e40e8 Move score attach logic to a helper method and call during editor save 2023-07-04 15:07:40 +09:00
Bartłomiej Dach
1ce60378be
Rewrite comments further 2023-07-01 20:37:33 +02:00
Dean Herbert
5bd91a531d Tidy up comments and code 2023-07-01 23:37:22 +09:00
Dean Herbert
a4a9223726 Move score re-attach to PostImport 2023-07-01 23:12:04 +09:00
Cootz
47ccbddfb1 Reword comment 2023-06-29 08:08:10 +03:00
Cootz
351f217c8c Reassign existing scores to new/re-exported beatmap 2023-06-29 08:07:43 +03:00
Bartłomiej Dach
6876566530
Fix difficulty deletion not deleting records from realm 2023-06-27 23:43:00 +02:00
Bartłomiej Dach
e3a89a6273
Fix remaining obvious CI inspections 2023-06-24 16:07:01 +02:00
Bartłomiej Dach
1f2f522a1e
Mark override as null-accepting
`ModelBackedDrawable<T>.CreateDrawable()` is R#-annotated to accept
a potentially null model. Apply nullability there too for better reading
experience.
2023-06-24 15:07:04 +02:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Joseph Madamba
9ae864c219
Fix beatmap info length tooltip not showing actual drain length 2023-06-17 15:00:32 -07:00
Joseph Madamba
fdebf93ae4
Fix incorrect xmldoc of IBeatmapInfo.Length 2023-06-17 14:55:27 -07:00
Bartłomiej Dach
af3fbdbfbe
Merge pull request #23829 from Joehuu/truncating-text-tooltips
Add tooltips to truncated text
2023-06-12 23:43:31 +02:00
Dean Herbert
a29f6772cd Fix storyboard being null if file doesn't exist
It's expected that `WorkingBeatmap.Storyboard` is non-null.

An example fail case is in `BeatmapBackgroundWithStoryboard.load`.
2023-06-12 17:22:15 +09:00
Salman Ahmed
2823a62b5f Avoid potential cropping error on very tall backgrounds 2023-06-09 15:27:53 +03:00
Dean Herbert
49c77a64ef Apply more correct fix, factoring in minimum display ratio 2023-06-09 19:30:28 +09:00
Salman Ahmed
df874b9ae8 Fix beatmap panel background looking different than usual 2023-06-09 09:16:10 +03:00
Joseph Madamba
85fedbd025
Add tooltips to truncated text 2023-06-08 19:44:07 -07:00
Bartłomiej Dach
c930ec97d6
Polish xmldocs 2023-06-08 19:11:48 +02:00
Bartłomiej Dach
29ce27098d
Refactor again to fix test failures 2023-06-08 19:11:48 +02:00
Bartłomiej Dach
b895d4a42f
Adjust logic to preserve existing desired behaviour 2023-06-08 19:11:48 +02:00
Bartłomiej Dach
b384a3258d
Remove unused argument 2023-06-08 19:11:48 +02:00
Bartłomiej Dach
7c8c6790d0
Refactor metadata lookup to streamline online metadata application logic 2023-06-08 19:11:48 +02:00
Bartłomiej Dach
05bd912a21
Revert internal access modifier application
Unfortunately breaks a few classes (which is fixable), and also breaks
Moq/Castle dynamic proxies (which is unfortunate).

Relevant error:

    System.TypeLoadException : Method 'GetPanelBackground' in type 'Castle.Proxies.IWorkingBeatmapProxy' from assembly 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
    Stack Trace:
        at System.Reflection.Emit.TypeBuilder.CreateTypeNoLock()
        at System.Reflection.Emit.TypeBuilder.CreateTypeInfo()
        at Castle.DynamicProxy.Generators.Emitters.AbstractTypeEmitter.BuildType()
        at Castle.DynamicProxy.Generators.BaseInterfaceProxyGenerator.GenerateType(String typeName, INamingScope namingScope)
        at Castle.DynamicProxy.Generators.BaseProxyGenerator.<>c__DisplayClass13_0.<GetProxyType>b__0(CacheKey cacheKey)
        at Castle.Core.Internal.SynchronizedDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
        at Castle.DynamicProxy.Generators.BaseProxyGenerator.GetProxyType()
        at Castle.DynamicProxy.DefaultProxyBuilder.CreateInterfaceProxyTypeWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
        at Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyTypeWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options)
        at Castle.DynamicProxy.ProxyGenerator.CreateInterfaceProxyWithoutTarget(Type interfaceToProxy, Type[] additionalInterfacesToProxy, ProxyGenerationOptions options, IInterceptor[] interceptors)
        at Moq.CastleProxyFactory.CreateProxy(Type mockType, IInterceptor interceptor, Type[] interfaces, Object[] arguments) in C:\projects\moq4\src\Moq\Interception\CastleProxyFactory.cs:line 50

In theory it would be possible to fix this via application of

    [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]

onto the `osu.Game` assembly, but I think this would be bad precedent.
2023-06-08 15:23:09 +02:00
Bartłomiej Dach
6dbf02454f
Fix bad math 2023-06-08 14:19:34 +02:00
Dean Herbert
cccc06de48 Fix potential failure if beatmap background isn't tall enough 2023-06-08 21:10:40 +09:00
Dean Herbert
ff4d376c84 Mark relevant components as internal 2023-06-08 21:01:05 +09:00
Dean Herbert
3978d4babb Crop and disable mipmaps on beatmap panel backgrounds
This is an effort to improve general performance at song select. At
least on the metal renderer, I can notice very high draw frame overheads
related to texture uploads.

By reducing the size of the texture uploads to roughly match what is
actually being displayed on screen (using a relatively inexpensive crop
operation), we can bastly reduce stuttering both during initial load and
carousel scroll.

You might ask if it's safe to disable mipmapping, but I've tested with
lower resolutions and bilinear filtering seems to handle just fine.
Bilinear without mipmaps only falls apart when you scale below 50% and
we're not going too far past that at minimum game scale, if at all.
2023-06-08 16:51:07 +09:00
Dean Herbert
a842f79ad4 Refactor IWorkingBeatmap.Background to GetBackground() 2023-06-08 16:19:32 +09:00
Bartłomiej Dach
1f4e79d79d
Merge pull request #23711 from timiimit/add-last-edit-time
Store timestamp of beatmap's last edit time in local database
2023-06-07 16:57:24 +02:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert
22f7fe1d79 Rename variable and ensure timestamp is updated even when not saving 2023-06-06 15:11:31 +09:00
timiimit
659fb80c16 Add BeatmapInfo.LastEditTime property 2023-05-31 19:06:41 +02:00
Bartłomiej Dach
96fe7cbe54
Merge branch 'master' into sample-set-controls 2023-05-25 21:58:16 +02:00
Bartłomiej Dach
78f41f7109
Fix spelling 2023-05-25 17:33:41 +02:00
Dean Herbert
058edb5d5f Centralise beatmap playable duration and bounds lookups 2023-05-25 17:32:48 +09:00
Dean Herbert
298989ffd2 Merge branch 'master' into sample-set-controls 2023-05-24 14:03:04 +09:00
Bartłomiej Dach
afdddb0195
Merge pull request #23582 from peppy/placement-blueprint-timeline-combo-fixes
Fix timeline blueprint display not showing correct combo number / colour during placement
2023-05-20 15:02:55 +02:00
Dean Herbert
8d925c8a8a Move combo information updating to an interface level helper method 2023-05-17 17:26:19 +09:00
Dean Herbert
83dcd78826 Make HitSampleInfo.Bank non-nullable 2023-05-16 18:12:56 +09:00
Dean Herbert
ca5e8b290f Add clamping to SliderMultiplier and SliderTickRate at parsing time 2023-05-09 20:53:20 +09:00
Dean Herbert
d10dd6d5ae Merge branch 'master' into base-s-v 2023-05-09 20:52:11 +09:00
Dean Herbert
944da06c10 Rename slider multiplier variable back for now 2023-05-09 16:58:19 +09:00
Bartłomiej Dach
30ce86a582
Merge pull request #23437 from peppy/fix-hold-note-input-test
Fix `TestSceneHoldNoteInput` not displaying correctly
2023-05-08 22:22:33 +02:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
Dean Herbert
d6ce56e6b1 Fix GetMostCommonBeatLength returning zero in case of not timing points 2023-05-08 17:09:08 +09:00
Dean Herbert
f7d44c3013 Rename SliderMultiplier to BaseSliderVelocity 2023-05-08 13:13:09 +09:00
Dean Herbert
0d095c4bb7 Remove non-Live pathway 2023-05-06 23:10:18 +09:00
cdwcgt
4549a865d9
Merge branch 'master' into export 2023-05-04 00:18:01 +09:00
Dean Herbert
f930c4bd0a Move struct to bottom of file 2023-05-03 13:33:31 +09:00
Dean Herbert
48fd99818e Split out default and sample application 2023-05-03 13:30:45 +09:00
Dean Herbert
cca15f930c Refactor applyLegacyInfoAndDefaults for legibility 2023-05-03 13:26:50 +09:00
Dean Herbert
588a4e6196 Move pragma disable to top of LegacyBeatmapDecoder
Makes more sense as it's used multiple times in the class.
2023-05-03 13:19:14 +09:00
Dean Herbert
e3c384c6b5 Merge branch 'master' into sample-control-points 2023-05-02 14:38:39 +09:00
Bartłomiej Dach
436ebdcfcb
Fix beatmap leaderboard test failure
Because the online info reset (which includes online ID reset) was
happening after encoding,
`TestSceneBeatmapLeaderboard.TestLocalScoresDisplayOnBeatmapEdit()`
started failing, as the hash no longer matched expectations after the
first save of the map.
2023-05-01 19:44:15 +02:00
Bartłomiej Dach
f470b2c9cc
Always reset online info when saving local beatmap 2023-05-01 18:17:45 +02:00
OliBomby
8c21fddb5e remove all redundancies from encoded control points 2023-05-01 16:53:38 +02:00
OliBomby
8302bb1f37 dont encode custom sample bank for objects without legacy samples 2023-05-01 14:56:29 +02:00
OliBomby
cef9f73d34 dont assign custom sample bank and volume to hitobjects in non-mania gamemodes
this makes it easier to edit hitsounds in the stable editor after export because the sample control point effects wont get overwritten by the properties of the hitobject
2023-05-01 12:31:27 +02:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
139a1d7e6d fix legacy encoder writing sample info while not writing node samples 2023-04-30 17:46:47 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
1b4f4372d5 fixed sample control point applying 2023-04-26 14:32:12 +02:00
OliBomby
5accb05f45 fix invalidoperation exception 2023-04-26 14:28:48 +02:00
OliBomby
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
OliBomby
c37875bee8 remove hitobject SampleControlPoint usage from LegacyBeatmapEncoder 2023-04-25 16:00:40 +02:00
OliBomby
bf1951fc38 Fix incorrect xmldoc 2023-04-25 12:54:45 +02:00
OliBomby
891b87a5ff remove ApplyLegacyInfo method 2023-04-25 12:52:21 +02:00
OliBomby
ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
OliBomby
a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
Daniel Kirschten
6c9a90d1ec
Merge branch 'master' into master 2023-04-22 19:23:52 +02:00
Haspamelodica
e90660c1a4 Switched to lowercase 2023-04-21 02:35:28 +02:00
Haspamelodica
b62de5514c Fixed video importing bug #23259 2023-04-21 02:10:24 +02:00
Dean Herbert
1066dfcbf6 Change default beat divisor to 4
This matches stable, and is a much saner default value.

Will apply to new beatmaps and also beatmaps which don't specify a snap
value in the `.osu` file.
2023-04-20 14:35:13 +09:00
Bartłomiej Dach
e72f103c17
Do not look up metadata for locally-modified beatmaps on save 2023-04-11 23:14:35 +02:00
cdwcgt
ce6a87b4a3
Merge remote-tracking branch 'upstream/master' into export 2023-04-09 15:02:47 +09:00
cdwcgt
de21b4a2f7
use Live<TModel>
Use RealmAccess only when needed
2023-04-09 22:21:15 +09:00
Dean Herbert
da947d8661 Gracefully handle beatmaps specifying images using the video storyboard type 2023-03-13 18:24:16 +09:00
Bartłomiej Dach
72695f7c90
Merge branch 'master' into omit-barline-in-timing-control-point 2023-03-07 22:46:24 +01:00
OliBomby
1fcf41379d Added maintainability patch by bdach 2023-03-06 16:20:36 +01:00
OliBomby
b0cd801405 fix code quality 2023-03-04 19:34:22 +01:00
OliBomby
5146f7c978 using array again in GetSearchableTerms 2023-03-04 16:49:46 +01:00
OliBomby
b90c389ff0 using List instead of Span in GetSearchableTerms 2023-03-04 15:42:35 +01:00
OliBomby
91d206e8d2 Optimised GetSearchableTerms
Reduced memory allocations to 1
2023-03-03 19:21:50 +01:00