1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 08:22:56 +08:00
Commit Graph

39860 Commits

Author SHA1 Message Date
Bartłomiej Dach
4db203ecc3
Merge branch 'master' into playfield-skin-layer 2023-07-29 00:01:06 +02:00
Bartłomiej Dach
c6f0cf50ca
Use better safety in rectangular grid
- Checking `DrawSize != Vector2.Zero` is too specific. It could also
  crash on zero-height-but-non-zero-width, or
  zero-width-but-non-zero-height.

- Take the `gridCache.Validate()` call out of the zero checks, because
  even if the width or height are zero, not generating anything is valid
  and there is no reason to validate every frame until `gridCache` gets
  invalidated again.
2023-07-28 22:57:02 +02:00
Bartłomiej Dach
0c10d875ce
Merge branch 'master' into ladder-grid-expand 2023-07-28 22:51:33 +02:00
Bartłomiej Dach
caad931a16
Move comment to more fitting place 2023-07-28 22:10:10 +02:00
Bartłomiej Dach
6d018c08af
Rename Apply{Vertical -> Horizontal}Centering to match common understanding 2023-07-28 22:09:28 +02:00
QuantumSno
a4065486c1 bound bind during gameplay 2023-07-28 14:39:41 -04:00
QuantumSno
26c128a093 added keybind and localization string 2023-07-28 14:39:30 -04:00
Dean Herbert
c9155f85ab Fix playfield not taking up full width correclty when not vertically centered 2023-07-28 16:40:14 +09:00
Dean Herbert
d26164e9fe Merge branch 'master' into fix-taiko-alignment 2023-07-28 16:32:37 +09:00
Dean Herbert
0e4db9b439 Add safety in RectangularPositionSnapGrid that size is greater than zero
Would crash otherwise
2023-07-28 16:25:40 +09:00
Dean Herbert
6cf065f6d1 Add playfield layer to skin editor 2023-07-28 15:50:44 +09:00
Dean Herbert
5bd06832d0 Fix skin component toolbox not working correctly for ruleset matching
Until now, the only usage of ruleset layers was where there is both a
ruleset specific and non-ruleset-specific layer present. The matching
code was making assumptions about this.

As I tried to add a new playfield layer which breaks this assumption,
non-ruleset-specifc components were not being displayed in the toolbox.
This turned out to be due to a `target` of `null` being provided due to
the weird `getTarget` matching (that happened to *just* do what we
wanted previously due to the equals implementation, but only because
there was a container without the ruleset present in the available
targets).

I've changed this to be a more appropriate lookup method, where the
target for dependency sourcing is provided separately from the ruleset
filter.
2023-07-28 15:50:44 +09:00
Dean Herbert
06fe5583cb Expose a new SSDQ from playfield for skinnable area bounds 2023-07-28 15:47:57 +09:00
Dean Herbert
f15394fb6d Fix temporary auto mod (ctrl+enter at song select) not reverting in all scenarios 2023-07-28 14:49:06 +09:00
Bartłomiej Dach
22163020c3
Merge pull request #24367 from peppy/fix-replay-export-from-results
Fix attempting to export replay from results screen after play not working
2023-07-27 20:47:07 +02:00
Bartłomiej Dach
973e6ded2a
Update wrong comment, too 2023-07-26 21:56:04 +02:00
Bartłomiej Dach
992f78b158
Use more consistent way of closing overlay 2023-07-26 21:54:35 +02:00
Dean Herbert
8d5efc9612 Add back the ability to close mod select using enter key
I've seen this brought up a few times (with people thinking
the fact it's not working is a bug) so we'll need to keep this
behaviour for now.
2023-07-27 02:36:25 +09:00
Dean Herbert
deba6e2508 Fix osu!taiko editor playfield missing a piece
Regressed with recent centering changes in https://github.com/ppy/osu/pull/24220
2023-07-27 02:24:10 +09:00
Joseph Madamba
9d87ff2986
Improve supporter-only duration notice and fix max duration of non-supporter
See 3c54229256/.env.example (L230). Might have more duration options in the future.
2023-07-26 01:37:55 -07:00
Dean Herbert
30baac0f3d Avoid reprocessing scores which already failed an upgrade previously
Closes https://github.com/ppy/osu/issues/24301.
2023-07-26 16:22:10 +09:00
Dean Herbert
c1ba8fe175 Rename BackgroundBeatmapProcessor to BackgroundDataStoreProcessor 2023-07-26 16:22:10 +09:00
Dean Herbert
4889864478 Fix files references not correctly being copied after replay import in Player 2023-07-26 15:22:00 +09:00
Dean Herbert
e26afc2b89 Fix ReplayDownloadButton handling key repeat 2023-07-26 15:21:43 +09:00
Joseph Madamba
30e0e00c52
Rename selectedAvailableDuration to hasValidDuration 2023-07-25 22:57:01 -07:00
Dean Herbert
7fd6bb9d5f Fix a couple of code style issues in SelectionBox 2023-07-26 14:04:38 +09:00
Dean Herbert
39c2bb240b Apply NRT to SelectionBoxRotationHandle. 2023-07-26 14:04:21 +09:00
Joseph Madamba
0bd34a4f13
Always show supporter-only playlist durations 2023-07-25 21:14:21 -07:00
Bartłomiej Dach
57ccf82f34
Merge branch 'master' into song-select-drain-length 2023-07-25 22:40:45 +02:00
Bartłomiej Dach
3b11559fd0
Revert "Show only the break length instead of total minute breaks"
This reverts commit 9edaa6909e.
2023-07-25 22:17:55 +02:00
Bartłomiej Dach
3b9f250c1b
Merge branch 'master' into menu-star-fountains 2023-07-25 21:58:13 +02:00
Dean Herbert
3485b72eaa Disallow interacting with the global track state in Player and Editor 2023-07-25 20:20:53 +09:00
Dean Herbert
6146f30541 Allow screens to change the ability to interact with the global track 2023-07-25 20:20:53 +09:00
Dean Herbert
157b1f301b Rename AllowTrackAdjustments to more understandable ApplyModTrackAdjustments 2023-07-25 20:20:53 +09:00
Dean Herbert
eac6271bd0 Add new property to avoid overlapping usages 2023-07-25 18:14:03 +09:00
Dean Herbert
43107f8cf0 Fix skin mapping not working for menu fountains 2023-07-25 17:46:05 +09:00
Dean Herbert
9edaa6909e Show only the break length instead of total minute breaks 2023-07-25 17:02:27 +09:00
Dean Herbert
480163ec2e Show drain length in length tooltip at song select 2023-07-25 16:58:53 +09:00
Dean Herbert
9cfe9164fa Add helper method to get drain length (and rename some usages) 2023-07-25 16:58:41 +09:00
Dean Herbert
bc671f8ac6 Fix beatmaps being queued for reprocessing every startup when logged out 2023-07-25 03:15:17 +09:00
Dean Herbert
2a06f11026
Merge pull request #24338 from frenzibyte/ios-enable-aot
Enable AOT compilation on iOS release builds for much better performance
2023-07-24 18:25:14 +09:00
Dean Herbert
bf89fbcd81 Update framework 2023-07-24 16:38:37 +09:00
Bartłomiej Dach
a201152b04
Add xmldoc to SelectionRotationHandler 2023-07-23 20:56:22 +02:00
Bartłomiej Dach
aec3ca250c
Migrate SelectionHandler to use SelectionRotationHandler 2023-07-23 20:56:22 +02:00
Bartłomiej Dach
f8047d6ab6
Migrate skin element rotation handling to SelectionRotationHandler 2023-07-23 20:56:22 +02:00
Bartłomiej Dach
ba8ebefb50
Add basic structure for new rotation handler 2023-07-23 20:56:22 +02:00
Bartłomiej Dach
4622255cc7
Move out helper methods to static class 2023-07-23 18:24:20 +02:00
Bartłomiej Dach
9f68bb4e4a
Merge pull request #24333 from peppy/editor-menu-spacer
Adjust metrics of editor menu spacers (and make visible)
2023-07-23 15:25:27 +02:00
Dean Herbert
4bf300d64d
Merge pull request #24186 from OliBomby/legacy-export
Add ability to export beatmaps from editor in a stable-compatible format
2023-07-23 15:25:06 +09:00
Dean Herbert
4ea8495c61 Adjust metrics of editor menu spacers (and make visible) 2023-07-23 14:12:37 +09:00
Dean Herbert
fb34ee94c2 Move export/save options to bottom of menu 2023-07-23 14:07:31 +09:00
Dean Herbert
20359c90bc Adjust localisations slightly 2023-07-23 14:06:00 +09:00
Dean Herbert
d11e56b8bb Add common Export string and use in editor 2023-07-23 14:03:50 +09:00
Bartłomiej Dach
d7b674bf2b
Merge branch 'master' into verify-breaks 2023-07-22 17:42:55 +02:00
Bartłomiej Dach
699b66be42
Do not reimplement binary sort manually 2023-07-22 17:12:21 +02:00
Bartłomiej Dach
d1c69283b2
Merge branch 'master' into editor-key-count 2023-07-22 16:11:21 +02:00
Bartłomiej Dach
f985bdc10f
Make difficulty sliders private set 2023-07-22 15:55:20 +02:00
Bartłomiej Dach
7e61a10524
Merge pull request #24314 from peppy/reduce-settings-item-spacing
Reduce spacing in settings items
2023-07-22 13:15:19 +02:00
Bartłomiej Dach
e2e3581674
Merge pull request #24292 from peppy/legacy-skin-alignment
Fix some UI elements in legacy skins not always aligning correctly
2023-07-21 21:48:03 +02:00
Bartłomiej Dach
2f6d125588
Merge pull request #24309 from peppy/tournament-team-editor-improvements
General improvements to tournament client team editor and buttons
2023-07-21 20:18:30 +02:00
Dean Herbert
fd2bdc10c7 Fix "key count" setting showing as "circle size" in osu!mania editor
Closes https://github.com/ppy/osu/issues/12904.
2023-07-21 18:52:29 +09:00
Dean Herbert
d23c73a2f1
Adjust with better numbers based off 1920x1080 resolution
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-07-21 17:25:38 +09:00
Dean Herbert
b5c3231feb Fix SettingsNumberBox having additional margin 2023-07-21 15:46:28 +09:00
Dean Herbert
741c3b8d21 Reduce spacing in settings items 2023-07-21 15:39:40 +09:00
Dean Herbert
82a5ba66e1 Align mode switcher with rest of interface 2023-07-21 15:27:42 +09:00
Dean Herbert
cdcb10e0e7 Fix timeline centre point being ever-so-slight off 2023-07-21 15:26:41 +09:00
Dean Herbert
b58354ac64 Fix playfield getting cut off (again) at tall aspect ratios 2023-07-21 15:20:20 +09:00
Dean Herbert
f489dbd7a9 Reduce width of right toolbar ever so slightly (and use more shared constants) 2023-07-21 14:39:15 +09:00
Dean Herbert
870f3e324a Adjust "test" button to better align with rest of interface 2023-07-21 14:26:33 +09:00
Dean Herbert
ca3d1538ae Merge branch 'master' into editor-metrics 2023-07-21 14:26:32 +09:00
Dean Herbert
2cb1a6fdaa Adjust metrics further 2023-07-21 14:23:53 +09:00
Dean Herbert
b29a2081ac Merge branch 'master' into menu-star-fountains 2023-07-21 14:21:16 +09:00
Bartłomiej Dach
c77d3cd6bd
Merge pull request #24294 from peppy/toggle-all-freemods
Add ability to toggle all free mods quickly at multiplayer song select
2023-07-20 22:32:53 +02:00
Bartłomiej Dach
07e0a703d7
Adjust inline comment 2023-07-20 20:51:39 +02:00
Bartłomiej Dach
708dd355cd
Merge branch 'master' into editor-cyclic-selection 2023-07-20 20:19:46 +02:00
Bartłomiej Dach
210e114f7d
Merge branch 'master' into editor-prefer-closest 2023-07-20 19:16:09 +02:00
Bartłomiej Dach
511948ba56
Add xmldoc to ApplySelectionOrder() 2023-07-20 19:16:04 +02:00
Dean Herbert
f791f21dcb Update framework 2023-07-20 20:05:38 +09:00
Dean Herbert
d9d055361a More realm analytic disables 2023-07-20 17:51:33 +09:00
Dean Herbert
c93d6a4008 Invert text colour when freemods is enabled for better contrast 2023-07-20 13:04:26 +09:00
Dean Herbert
18c5fc689f Don't expose such specific information from ModSelectOverlay 2023-07-20 12:58:13 +09:00
Dean Herbert
4057fcd70e Merge branch 'master' into toggle-all-freemods 2023-07-20 12:56:46 +09:00
NiceAesth
fa29c25097 Change check to use binary search 2023-07-20 00:32:35 +03:00
Bartłomiej Dach
285a232cc2
Merge pull request #24290 from peppy/beatmap-offset-all-difficulties
Change offset calibration control to adjust for all difficulties of the current beatmap set
2023-07-19 22:31:38 +02:00
Bartłomiej Dach
f3a95d4c13
Merge branch 'master' into menu-star-fountains 2023-07-19 21:26:41 +02:00
Bartłomiej Dach
764029bde1
Fix nullability inspection 2023-07-19 19:23:08 +02:00
Dean Herbert
e47722565a Clarify guard condition in RoomSubScreen 2023-07-19 19:39:10 +09:00
Dean Herbert
18aace177a Fix deadlock when logging out while at the create match screen
Closes https://github.com/ppy/osu/issues/24275.
2023-07-19 19:37:38 +09:00
Dean Herbert
310067b4c3 Update resources 2023-07-19 19:11:19 +09:00
Dean Herbert
eb149942e5 Add ability to toggle all free mods quickly at multiplayer song select 2023-07-19 19:08:32 +09:00
Dean Herbert
61ff3d08d4 Change depth of LegacySongProgress to allow "skinning" via health bar background 2023-07-19 17:48:19 +09:00
Dean Herbert
e283845b71 Adjust legacy skin elements to better align with skinning expectations 2023-07-19 17:45:07 +09:00
Dean Herbert
cf3949c9e2 Fix double-click handling when cyclic selection is enabled
Removes the limitations of cyclic selection as a result.
2023-07-19 17:21:20 +09:00
Dean Herbert
5ec9cd84b2 Change offset calibration control to adjust for all difficulties of the current beatmap set 2023-07-19 17:13:19 +09:00
Dean Herbert
5ade093c5a Change editor to always perform selection of closest object 2023-07-19 16:56:16 +09:00
Dean Herbert
55a41b0887 Fix overlap between header text and menu items 2023-07-19 15:13:20 +09:00
Dean Herbert
871056790b Mark editor tile as non-localisable 2023-07-19 15:01:20 +09:00
Dean Herbert
7f336b8dac Merge branch 'master' into editor-metrics 2023-07-19 15:00:51 +09:00
Dean Herbert
5e2a0bd733 Fix spawning edge case when elapsed became unexpectedly negative 2023-07-19 14:10:27 +09:00
Dean Herbert
7fa95f7512 Fix #region 2023-07-19 13:52:43 +09:00
Dean Herbert
2e3d1fe950 Fix regression in time jumping behaviour 2023-07-19 13:38:04 +09:00
OliBomby
e7a9175aea fix skin using wrong stream 2023-07-18 13:08:05 +02:00
Dean Herbert
ba237a0e3a Convert StarFountain to use ParticleSpewer
More efficient
2023-07-18 20:04:52 +09:00
Dean Herbert
ccbb30cdda Fix ParticleSpewer not correctly accounting for lower frame rates (and spawning less particles) 2023-07-18 19:52:45 +09:00
OliBomby
63dd8bd991 use base.GetFileContents to get file stream 2023-07-18 12:40:48 +02:00
OliBomby
395dd23966 Put 'Export package' and 'Export legacy package' in one nested menu 2023-07-18 12:37:37 +02:00
OliBomby
bcdf531039 truncate end time before start time 2023-07-18 12:28:35 +02:00
OliBomby
5d82190b70 Merge remote-tracking branch 'upstream/master' into legacy-export 2023-07-18 12:18:49 +02:00
OliBomby
c02684d985 truncate hit object end time 2023-07-18 12:18:43 +02:00
Dean Herbert
f4acc86df8 Adjust metrics to closer match expectations 2023-07-18 16:26:37 +09:00
Dean Herbert
49bb0b190a Split out star constant to reuse in pool definition 2023-07-18 16:14:54 +09: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
NiceAesth
ff529d9df7 Rename variables, fix check message formatting 2023-07-17 20:48:53 +03:00
Dean Herbert
66269be189
Merge pull request #24256 from tybug/update-download-icon
Use `FontAwesome.Download` for updates instead of `FontAwesome.Upload`
2023-07-17 12:25:04 +09:00
NiceAesth
3888471148 Add break length and bounds checks 2023-07-16 23:03:21 +03:00
Liam DeVoe
6200e207d2 use fa_download for updates instead of fa_upload 2023-07-16 15:21:15 -04:00
Bartłomiej Dach
7fbd47e9ee
Fix MultiplayerMatchSubScreen erroneously pushing exit dialog on API failure
If `IAPIProvider.State` changes from `Online` at any point when being on
an `OnlinePlayScreen`, it will be forcefully exited from. However,
`MultiplayerMatchSubScreen` had local logic that suppressed the exit in
order to show a confirmation dialog.

The problem is, that in the suppression logic,
`MultiplayerMatchSubScreen` was checking
`MultiplayerClient.IsConnected`, which is a SignalR flag, and was not
checking `IAPIAccess.State`, which is maintained separately. Due to
differing timeouts and failure thresholds, it is not impossible to have
`MultiplayerClient.IsConnected == true` but `IAPIAccess.State !=
APIState.Online`.

In such a case, the match subscreen would wrongly consider itself to be
still online and due to that, push useless confirmation dialogs, while
being in the process of being forcefully exited. This then caused the
dialog to cause a crash, as it was calling `.Exit()` on the screen which
would already have been exited by that point, by the force-exit flow.
2023-07-16 19:56:22 +02:00
Bartłomiej Dach
cd02a8a9ca
Fix PopupDialog potentially accumulating schedules during load 2023-07-16 19:43:37 +02:00
Dean Herbert
acb51dfca3
Merge pull request #24246 from bdach/fix-exit-dialog-crash
Fix potential crash in confirm exit dialog while attempting to exit game
2023-07-17 01:11:07 +09:00
Dean Herbert
e25cd03e4b Update framework 2023-07-17 00:55:25 +09:00
Bartłomiej Dach
d25a03984b
Fix PerformAction<T>() potentially crashing when no matching button is found 2023-07-16 16:55:20 +02:00
Dean Herbert
2d51aa21b7
Merge pull request #24235 from AkiSakurai/toplocalrank
Compute the top local rank directly without an expensive detach call
2023-07-16 12:14:56 +09:00
Dean Herbert
cf70f5e04d
Merge pull request #24219 from peppy/fix-mania-everything
Fix osu!mania scores failing to convert to new standardised score due to cast failure
2023-07-16 11:54:42 +09:00
Aki
cb354685ca
simplify code 2023-07-16 10:21:32 +08:00
Aki
309c852222
Compute the top local rank directly without an expensive detach call 2023-07-15 23:00:13 +08:00
Dean Herbert
eb81eac635 Flag decoded scores more correctly 2023-07-15 12:19:18 +09:00
Dean Herbert
1868826d69 Update framework 2023-07-15 01:12:10 +09:00
Dean Herbert
480259b8d2 Ensure migration is never run on scores with new-enough TotalScoreVersions 2023-07-14 20:02:25 +09:00
Dean Herbert
85c780ae5b Allow the osu! logo to be proxied locally into scenes 2023-07-14 19:19:14 +09:00
Dean Herbert
fe70f24925 Update design of summary timeline current time marker 2023-07-14 17:00:42 +09:00
Dean Herbert
e6b8cd0c06 Add editor header 2023-07-14 16:55:12 +09:00
Dean Herbert
57abb15724 Update design of timeline centre marker and adjust surrounding paddings 2023-07-14 16:37:57 +09:00
Dean Herbert
00e9746174 Implement longer design for timing point piece 2023-07-14 16:37:56 +09:00
Dean Herbert
6b222cfafd Fix slight misalignment so timeline is now completely centered 2023-07-14 14:29:13 +09:00
Dean Herbert
01750dd091 Update metrics of checkboxes and backgrounds to match design better 2023-07-14 14:29:02 +09:00
Dean Herbert
1dc293ed61 Allow specifying a custom width for nubs in OsuCheckboxes 2023-07-14 14:24:55 +09:00
Dean Herbert
5b2e704264 Move beat divisor control inside of TimelineArea and adjust metrics to match design 2023-07-14 14:19:04 +09:00
Dean Herbert
ebaf63b764 Apply NRT to timeline related classes 2023-07-14 14:04:12 +09:00
Dean Herbert
56acc9e3dd Change BeatDivisorControl to retrive bindable divisor via DI 2023-07-14 14:03:25 +09:00
Bartłomiej Dach
cdbb6f90be
Merge pull request #24199 from peppy/revert-to-default-design-change
Update design of "revert to default" button
2023-07-13 23:44:24 +02:00
Bartłomiej Dach
ff56e35093
Merge pull request #24197 from peppy/allow-autoplay-failure
Allow autoplay to fail
2023-07-13 23:44:07 +02:00
Bartłomiej Dach
cef0dd1d61
Merge pull request #24190 from novialriptide/emoji-fix
Replace emoji unicode with `[emoji]`
2023-07-13 22:05:12 +02:00
Bartłomiej Dach
96e4b8d792
Merge pull request #24204 from peppy/results-screen-component-metrics
Touch up various results screen component's metrics
2023-07-13 22:03:49 +02:00
Bartłomiej Dach
9cc2150b5a
Fix mixed [cC]urrent usage 2023-07-13 22:00:21 +02:00
Bartłomiej Dach
3ca767b7a2
Remove outdated comment 2023-07-13 21:58:55 +02:00
Bartłomiej Dach
eeb50e2700
Do not rely on OverlayColourProvider presence 2023-07-13 21:45:06 +02:00
Bartłomiej Dach
674eb1a36b
Remove unused property 2023-07-13 21:25:43 +02:00
Bartłomiej Dach
a1e83b20e6
Make autoplay compatible with ModFailCondition 2023-07-13 21:23:57 +02:00
Dean Herbert
ded7ec3aa6
Merge branch 'master' into framework-clipboard 2023-07-14 03:32:37 +09:00
Dean Herbert
4114fab8ea Update framework 2023-07-14 03:31:36 +09:00
Bartłomiej Dach
20bde40ce2
Fix differing anchor specs on statistics panel flow items 2023-07-13 20:00:29 +02:00
Bartłomiej Dach
d5912165e9
Merge branch 'master' into results-screen-component-metrics 2023-07-13 19:53:52 +02:00
Bartłomiej Dach
9b771ee798
Merge pull request #24202 from peppy/save-preset-on-select
Allow saving changes to mod presets using enter key
2023-07-13 19:50:16 +02:00
Bartłomiej Dach
16540d69d5
Merge pull request #24206 from peppy/results-screen-misc
Fix some minor issues with results screen
2023-07-13 19:49:49 +02:00
Bartłomiej Dach
1ed15dc42f
Merge pull request #24191 from peppy/fix-hit-distro-code-quality
Fix timing distribution graph sometimes not displaying correctly
2023-07-13 18:35:28 +02:00
Dean Herbert
1051982bc5 Tidy up code with constants 2023-07-13 23:25:50 +09:00
Dean Herbert
8f826a3702 Add skinning support for kiai fountain stars 2023-07-13 22:57:04 +09:00
Dean Herbert
53fccaa3bd Use skinnable sprite 2023-07-13 22:30:27 +09:00
Dean Herbert
1698caa078 Add kiai fountains to main menu 2023-07-13 22:13:40 +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
Dean Herbert
2c27b17c85 Disable masking on inner scroll container 2023-07-13 19:01:59 +09:00
Dean Herbert
e34839c891 Rename StatisticContainer to StatisticItemContainer and add a background 2023-07-13 18:59:11 +09:00
Dean Herbert
b333945cde Change OverallRanking to use a two-column layout similar to statistics table 2023-07-13 18:45:32 +09:00
Dean Herbert
1a7b00ec15 Ensure PerformanceBreakdown pieces cannot be null 2023-07-13 18:45:32 +09:00
Dean Herbert
0881f4772c Adjust metrics of HitEventTimingDistributionGraph 2023-07-13 18:45:32 +09:00
Dean Herbert
947b40149f Adjust metrics of SimpleStatisticTable 2023-07-13 18:45:32 +09:00
Dean Herbert
6edaf4f230 Ensure PerformanceBreakdown pieces cannot be null 2023-07-13 18:38:16 +09:00
Dean Herbert
d54cf63983 Centralise font size specification for statistic items (and reduce slightly) 2023-07-13 18:31:40 +09:00
Dean Herbert
f223fd7c3b Adjust metrics of PerformanceBreakdown 2023-07-13 18:30:57 +09:00
Dean Herbert
7637a9e603 Adjust metrics of OverallRanking 2023-07-13 18:30:57 +09:00
Dean Herbert
98bf15182e Remove more GridContainer nonsense 2023-07-13 18:30:57 +09:00
Dean Herbert
12e8ac09bd Merge branch 'master' into fix-hit-distro-code-quality 2023-07-13 17:58:27 +09:00
Dean Herbert
db37de45ac Allow saving changes to presets in popover using "select" binding 2023-07-13 17:53:26 +09:00
Dean Herbert
f5c472c0fe Don't hide mod select overlay when pressing select binding with no search 2023-07-13 17:50:07 +09:00
Andrew Hong
ea6704ca1d Move parsing 2023-07-13 04:41:53 -04:00
Dean Herbert
2f40989a4f Allow no fail mod during autoplay 2023-07-13 17:25:08 +09:00
Andrew Hong
3d17a03dc6 Emojis now represented as "[emoji]" 2023-07-13 03:52:22 -04:00
Dan Balasescu
47a65f8890
Merge branch 'master' into fix-imperfect-simulation 2023-07-13 15:41:54 +09:00
Dean Herbert
1d62a041cc Fix animation restarting unexpectedly 2023-07-13 15:07:26 +09:00
Dean Herbert
21f26f98da Fix graph breaking when resized vertically 2023-07-13 14:57:01 +09:00
Dean Herbert
e2b5abd4e8 Split bar drawable creation into own method 2023-07-13 14:43:41 +09:00
Dean Herbert
94201579f6 Update design of "revert to default" button
I keep getting feedback that the old design looked like anything *but* a
button to revert defaults. Including people clicking it expecting
opposite behaviour.

This is intended to be a temporary design until we get the full new UI
components online (where this is moved to the right-hand-side).
2023-07-13 14:26:03 +09:00
Dean Herbert
1bfe5a18cb Rename RestoreDefaultValueButton to RevertToDefaultButton
Because I can't find it every time I search.
2023-07-13 13:46:50 +09:00
Dean Herbert
fbf14a0f7c Allow autoplay to fail
Feels more correct.
2023-07-13 13:41:35 +09:00
Andrew Hong
d62cfc1616 Parse emoji to an empty string 2023-07-12 20:24:09 -04: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
465cc759f0 Add xmldoc to clarify the purpose of BeatmapExporter 2023-07-12 14:49:49 +02:00
Andrew Hong
b05ba8c501 Remove unused code 2023-07-12 06:32:33 -04:00
Dean Herbert
4f4c481a67 Fix timing distribution graph sometimes not displaying correctly
Weird "basal" height logic just didn't make any sense (was getting stuck at 1 when `DrawHeight` was 0)
2023-07-12 19:21:39 +09:00
Andrew Hong
b3b6df6e30 Remove emoji regex 2023-07-12 06:19:48 -04:00
Dean Herbert
b20190ed4f Merge branch 'master' into fix-blueprint-end-placement 2023-07-12 17:38:47 +09:00
Dan Balasescu
41d3924326 Update localisation analyser packages 2023-07-12 16:30:26 +09:00
Dean Herbert
8e1e8a2807
Merge pull request #24169 from bdach/legacy-score-v2
Backpopulate stable ScoreV2 scores with ScoreV2 system mod (and don't recalculate their total score)
2023-07-12 12:44:04 +09:00
Bartłomiej Dach
851e6d111a
Merge branch 'master' into verify-drain-time 2023-07-11 23:29:18 +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
NiceAesth
1dae1d8f0a Account for break time 2023-07-11 13:40:19 +03:00
Susko3
2dcd790442 Resolve Clipboard via DI 2023-07-11 11:42:31 +02:00
Dean Herbert
a0e6748882 Fix slider blueprint placement when ending placement outside the playfield
As mentioned in https://github.com/ppy/osu/discussions/24161
2023-07-11 17:29:53 +09:00
Dean Herbert
0dd4ad8c5d Merge branch 'master' into legacy-score-v2 2023-07-11 16:56:49 +09:00
OliBomby
06e5ef88c0 legacy export broken 2023-07-11 02:30:16 +02:00
Bartłomiej Dach
9e4ffc8c12
Split helper method for populations from replay 2023-07-10 21:10:01 +02:00
NiceAesth
9a2915f423 Add beatmap minimum length checks 2023-07-10 17:29:49 +03:00
Dean Herbert
89b110e3aa Update framework 2023-07-10 21:26:20 +09:00
Dean Herbert
8b222dc42b
Merge pull request #24171 from bdach/editor-timestamp-copy-without-selection
Fix pressing Ctrl-C in composer not copying timestamp to system clipboard with empty selection
2023-07-10 15:27:42 +09:00
Bartłomiej Dach
91e286560e
Fix search being broken in channel listing "channel" 2023-07-09 21:51:08 +02:00
Bartłomiej Dach
6453ab6049
Set chat text box message length limit based on channel 2023-07-09 21:42:13 +02:00
Bartłomiej Dach
d135b3f6f5
Add message length limit field to API response 2023-07-09 21:27:33 +02:00
Bartłomiej Dach
45194b2b4a
Fix pressing Ctrl-C in composer not copying timestamp to system clipboard 2023-07-09 18:21:43 +02:00
Bartłomiej Dach
e12255bbe5
Do not run legacy conversion with ScoreV2 mod present 2023-07-09 17:48:25 +02:00
Bartłomiej Dach
9377622cd4
Add backwards migration to populate ScoreV2 mod for already-imported scores 2023-07-09 17:48:24 +02:00
Bartłomiej Dach
7be5e0e978
Implement back-and-forth conversion of ModScoreV2 and LegacyMods 2023-07-09 16:15:21 +02:00
Bartłomiej Dach
10ba04512d
Add ScoreV2 to LegacyMods 2023-07-09 16:06:05 +02:00
Bartłomiej Dach
ae05df3b8c
Add ModScoreV2 2023-07-09 15:56:51 +02:00
Bartłomiej Dach
56a2ba4ac0
Fix GenerateTicks being lost during osu! beatmap conversion process 2023-07-08 23:24:38 +02:00
Bartłomiej Dach
055e4a78f0
Merge branch 'master' into taiko-hitsounding-final-attempt 2023-07-08 18:10:04 +02:00
Bartłomiej Dach
d5a48a4b9f
Merge branch 'master' into move-local-input-control 2023-07-08 15:25:10 +02:00
Bartłomiej Dach
84138849cf
Merge pull request #24134 from peppy/skin-retry-sound
Add support for skinnable "retry" sound
2023-07-08 15:24:26 +02:00
Bartłomiej Dach
0ecfb7b36f
Remove unused field 2023-07-08 15:03:33 +02:00
Bartłomiej Dach
e2aaef6663
Merge branch 'master' into no-dismiss-all-progress-notifications 2023-07-08 14:19:57 +02:00
Bartłomiej Dach
10da80638b
Merge pull request #24152 from peppy/results-screen-tweens
Adjust results screen transition tweens to feel better
2023-07-08 14:15:37 +02:00
Bartłomiej Dach
cdaf8e4b0f
Flip and rename CompletedOrCancelled to Ongoing 2023-07-08 14:11:58 +02:00
Bartłomiej Dach
3a9b259f8a
Add back removed .ToUpper() case transform 2023-07-08 14:10:05 +02:00
Bartłomiej Dach
287418e214
Merge branch 'master' into skin-retry-sound 2023-07-08 14:00:52 +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
0e85a33ca2 Update framework 2023-07-07 20:58:04 +09:00
Dean Herbert
1d9d90e6e3 Merge branch 'master' into framework-IWindow-changes 2023-07-07 20:57:48 +09:00
Dean Herbert
82babbf8fa Adjust results screen transition tweens to feel better 2023-07-07 17:39:54 +09:00
Dean Herbert
0049f3fed4
Merge branch 'master' into more-notification-sounds 2023-07-07 16:39:31 +09:00
Dean Herbert
9732e5733c Update resources 2023-07-07 15:45:21 +09: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
67746e1369 Move retry sample playback to PlayerLoader 2023-07-07 15:36:17 +09:00
Dean Herbert
e0fc97bb93 Replace various local implementations of rewinding checks with new property 2023-07-07 15:21:24 +09:00
Dean Herbert
04a1550215 Redesign "local input" toggle in manual input tests to be more user-friendly
- Only displays when required (there's literally zero case we want to
  return input to the test, as this is automatic on next action)
- No longer hugs the right side of the screen (blocking visibility of
  some tests).
2023-07-07 13:32:16 +09:00
Dean Herbert
d93548f4ea Add back "clear all" button for progress notifications but only clear cancelled 2023-07-07 13:18:23 +09:00
Dean Herbert
ddd65f5fe7
Merge pull request #24135 from peppy/update-realm
Bring realm library up-to-date
2023-07-07 10:59:38 +09:00
Dean Herbert
8978f2ddd8 Remove all usage of !something!.something
aka don't mix NRT forgiving syntax with not syntax
2023-07-07 10:15:33 +09:00
Bartłomiej Dach
e3fd88db59
Merge pull request #24137 from peppy/remove-wedge-rotation
Remove beatmap info wedge rotation animation
2023-07-06 22:43:12 +02:00
Bartłomiej Dach
ae2896ba7e
Sprinkle some more null-forgiving operators 2023-07-06 22:08:48 +02:00
Bartłomiej Dach
1473abd909
Remove outdated xmldoc 2023-07-06 22:01:02 +02:00
Bartłomiej Dach
f3f4bb6356
Add one more safety against processing scores with missing beatmap 2023-07-06 20:56:24 +02:00
Jamie Taylor
a55ba963a9
Don't play 'popout' sample when ProgressNotification completes 2023-07-07 01:51:58 +09:00
Jamie Taylor
d4f5d0c878
Revert "Remove sound from notification closing/hiding"
This reverts commit 244f3c6098bb27b66f5ff7fb8c76f38f56cfb4cd.
2023-07-07 01:51:57 +09:00
Jamie Taylor
6e2b7f433b
Add a sound for 'cancelling' ProgessNotification 2023-07-07 01:51:57 +09:00
Jamie Taylor
4ff4c3a12e
Remove sound from notification closing/hiding 2023-07-07 01:51:57 +09:00
Jamie Taylor
fdb572fdea
Add more/different notification sounds 2023-07-07 01:51:57 +09:00
Dean Herbert
070b3883ce Remove the ability to cancel all "in progress" tasks 2023-07-07 00:31:32 +09:00
Dean Herbert
753db044b4 Fix GameplaySampleTriggerSource not handling rewinds correctly 2023-07-06 19:08:42 +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
c9fd435402 Fix potential crash when mashing exit key 2023-07-06 17:58:36 +09:00
Dean Herbert
f69f6adf67 Remove beatmap info wedge rotation animation
It looks jank and also causes framebuffer overheads.

But mostly because it looks jank.
2023-07-06 16:15:42 +09:00
Dean Herbert
de74c9eb8b Fix GameplaySampleTriggerSource not handling rewinds correctly 2023-07-06 14:16:31 +09:00
Dean Herbert
af3f9086e5 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 14:16:31 +09:00
Dean Herbert
a98a36872e Bring realm library up-to-date 2023-07-06 13:37:43 +09:00
Dean Herbert
b679ab88a1 Avoid attempting to process missing statistics on scores without linked beatmaps 2023-07-06 12:29:03 +09:00
Dean Herbert
9ff6b3fcd3 Merge branch 'master' into editor-save-local-score-management 2023-07-06 12:28:44 +09:00
Dean Herbert
65384d6125
Merge pull request #24129 from peppy/toggle-replay-overlay
Remember state of replay settings visibility and allow key customisation
2023-07-06 12:27:30 +09:00
Dean Herbert
170bc5bfce Add support for skinnable "retry" sound 2023-07-06 12:25:15 +09:00
Bartłomiej Dach
1938bdbf9d
Move replay settings toggle to replay key bindings section 2023-07-05 22:45:10 +02:00
Bartłomiej Dach
cdb8a56df4
Remove weird aliased using
Doesn't appear to be required.
2023-07-05 22:41:22 +02:00
Bartłomiej Dach
a87a631c50
Merge branch 'master' into taiko-hitsounding-final-attempt 2023-07-05 22:15:32 +02:00
Bartłomiej Dach
f3576b88a4
Merge pull request #24121 from peppy/fix-judged-fallback
Fix fallback for `Judged` to be more correct
2023-07-05 22:15:04 +02:00
Dean Herbert
9291895305 Make key for toggling replay settings customisable 2023-07-06 01:00:41 +09:00
Dean Herbert
95a9b532df Remember state of replay settings visibility 2023-07-06 00:53:37 +09:00
Dean Herbert
fbab5acac1 Remove not-yet-implemented settings group comments 2023-07-06 00:46:09 +09:00
Dean Herbert
00c68cad53 Fix new scoring related properties not storing to realm due to internal spec 2023-07-05 19:47:44 +09:00
Dean Herbert
49e5558e4f
Merge pull request #24072 from smoogipoo/diffcalc-total-scorev1
Add difficulty attributes to facilitate conversion from legacy score, and convert existing scores
2023-07-05 18:47:18 +09:00
Dean Herbert
8f61f5e4c6 Cache Playfield for the sake of tests
I'm open to an alternative. Name it.
2023-07-05 18:44:27 +09:00
Dean Herbert
c5b949154c Merge branch 'fix-judged-fallback' into taiko-hitsounding-final-attempt 2023-07-05 18:44:27 +09:00
Dean Herbert
168b6c70a9 Update resources 2023-07-05 18:44:27 +09:00
Dean Herbert
4364736ccd Fix fallback for Judged to be more correct
Without this change, when the `Judged` value is checked on an
`HitObjectLifetimeEntry` it would return `true` if a `DrawableHitObject`
has not yet been associated with the entry. Which is completely wrong.

Of note, the usage in `DrawableHitObject` will have never fallen through
to this incorrect value as they always have a result populated:

f26f001e1d/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs (L721-L726)
2023-07-05 18:44:27 +09:00
Dean Herbert
561fff801a Consume nested object states in HitObjectLifetimeEntry 2023-07-05 18:44:27 +09:00
Dean Herbert
759cd5aec7 Warm up pool with argon-specific drum samples 2023-07-05 18:44:27 +09:00
Dean Herbert
27af07b74b Add basic implementation of argon osu!taiko hitsounds (volume / flourish / strong) 2023-07-05 18:44:27 +09:00
Dean Herbert
beed390031 Add balance adjust to base implementation of DrumSampleTriggerSource 2023-07-05 18:44:27 +09:00
Dean Herbert
6d4fa6569f Add back required pieces to GameplaySampleTriggerSource from old PR 2023-07-05 18:44:27 +09:00
Dean Herbert
3f8dfc7cb0 Fix fallback for Judged to be more correct
Without this change, when the `Judged` value is checked on an
`HitObjectLifetimeEntry` it would return `true` if a `DrawableHitObject`
has not yet been associated with the entry. Which is completely wrong.

Of note, the usage in `DrawableHitObject` will have never fallen through
to this incorrect value as they always have a result populated:

f26f001e1d/osu.Game/Rulesets/Objects/Drawables/DrawableHitObject.cs (L721-L726)
2023-07-05 18:03:58 +09:00
Dean Herbert
5947c2b298 Throw if a null BeatmapInfo arrives during score import process 2023-07-05 16:08:06 +09:00
Bartłomiej Dach
6c4e52821d
Redirect judgement-related flags from DHO to HOLE 2023-07-04 23:45:08 +02:00
Bartłomiej Dach
0ceaf3c451
Ensure synthetic entries from non-pooled DHO are linked to parents 2023-07-04 23:45:08 +02:00
Bartłomiej Dach
bae7670855
Redirect HitObjectEntryManager child mapping to HOLE 2023-07-04 23:41:06 +02:00
Bartłomiej Dach
6dc8c7b617
Add HitObjectLifetimeEntry.NestedEntries 2023-07-04 23:39:56 +02:00
Bartłomiej Dach
e2ddcb2349
Silence a few remaining nullability warnings 2023-07-04 22:39:26 +02:00
Bartłomiej Dach
a55809733d
Expand ScoreInfo.BeatmapInfo xmldoc 2023-07-04 22:20:50 +02:00
Dean Herbert
f2aa80f413 Rename and adjust xmldoc on TotalScoreVersion 2023-07-04 20:04:02 +09:00
Dean Herbert
aee89e5e4b Rewrite comment regarding LegacyTotalScore 2023-07-04 19:59:57 +09:00
Dean Herbert
664294cef4 Fix cancelled progress notifications requiring exit confirmation 2023-07-04 18:39:19 +09:00
Dean Herbert
dd9998127e Count missing beatmaps as errored items 2023-07-04 18:35:03 +09:00
Dean Herbert
d3eb06578e Improve messaging around failed scores 2023-07-04 18:34:53 +09:00
Dean Herbert
56bfb92ba6 Allow user cancellation 2023-07-04 18:22:10 +09:00
Dean Herbert
257a96ef60 Fix background beatmap processor thread not correctly exiting 2023-07-04 18:21:22 +09:00
Dean Herbert
4de15f975e Fix realm silly business 2023-07-04 18:08:26 +09:00
Dean Herbert
a0c3fa9c13 Move preconditions to realm migration step to simplify marker version logic 2023-07-04 17:53:53 +09:00
Dean Herbert
1629024111 ILegacyScoreProcessor -> ILegacyScoreSimulator 2023-07-04 17:32:54 +09:00
Dean Herbert
3b5f3b67a7 Tidy up and improve messaging on completion notification 2023-07-04 15:53:24 +09:00
Dean Herbert
1a6381bcbb Reduce code repetition for sleep logic 2023-07-04 15:35:09 +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
Dean Herbert
d74b1e148d Make ScoreInfo.BeatmapInfo nullable 2023-07-04 14:50:34 +09:00
Dean Herbert
67650831bd Remove unnecessary null check 2023-07-04 14:19:25 +09:00
Dean Herbert
4203e2183d
Merge branch 'master' into diffcalc-total-scorev1 2023-07-04 14:15:24 +09:00
Bartłomiej Dach
21f758947d
Merge branch 'master' into availability-fixes 2023-07-02 20:38:37 +02:00
Bartłomiej Dach
7b3cb5b410
Merge pull request #24068 from peppy/fix-sign-out-string
Use more correct localised string source for "sign out" text
2023-07-02 19:20:24 +02:00
Dean Herbert
95c30fe12a Duplicate sign out string for now 2023-07-03 00:14:26 +09:00
Dean Herbert
b3c874fdc5
Merge pull request #24099 from bdach/fix-oob-selection-box-again
Fix edge cases where selection buttons go outside playfield bounds
2023-07-02 09:37:50 +09:00
Bartłomiej Dach
d017be50f1
Merge pull request #24081 from Cootz/restore-scores-after-bearmap-reinstallation
Reattach any orphaned scores when a beatmap is imported
2023-07-01 22:33:38 +02:00
Bartłomiej Dach
9eec1337b3
Use slightly different condition for better UX 2023-07-01 21:39:08 +02:00
Bartłomiej Dach
183777f8df
Fix edge cases where selection buttons go outside playfield bounds
Addresses
https://github.com/ppy/osu/discussions/23599#discussioncomment-6300885.
2023-07-01 21:27:17 +02:00
Bartłomiej Dach
1ce60378be
Rewrite comments further 2023-07-01 20:37:33 +02:00
Susko3
e38ac4185c Update inline with framework IWindow changes 2023-07-01 19:02:09 +02:00
Bartłomiej Dach
fe2ca5cfef
Merge pull request #24087 from peppy/less-tablet-error-spam
Ensure "tablet support disabled" notification is only shown once
2023-07-01 18:46:27 +02:00
Dean Herbert
5f880397a9 Increase the minimum size of the scroll bar
Allows easier targetting when there is a lot of content in the scroll view

As discussed in https://github.com/ppy/osu/discussions/24095#discussioncomment-6332398.
2023-07-02 00:04:56 +09: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
8d25e2c3e1 Add importer update test 2023-07-01 09:49:06 +03:00
Dean Herbert
e2db6159d6 Ensure "tablet support disabled" notification is only shown once 2023-06-30 13:47:55 +09:00
Bartłomiej Dach
1f3d833b05
Merge pull request #24080 from peppy/star-rating-no-rounding
Never remove significant digits from star rating displays
2023-06-29 21:27:30 +02:00
Dan Balasescu
426f11b824 Apply a few other code reviews 2023-06-29 17:28:06 +09:00
Dan Balasescu
c6ad184d94 Move Ruleset method to ILegacyRuleset interface 2023-06-29 17:24:37 +09:00
Dan Balasescu
6822871dab Move population of LegacyTotalScore to ScoreImporter 2023-06-29 17:21:24 +09:00
Dan Balasescu
ddd870e843 Make LegacyTotalScore nullable 2023-06-29 17:19:10 +09:00
Dan Balasescu
c816281494 Make BackgroundBeatmapProcessor task long-running 2023-06-29 17:16:33 +09:00
Dan Balasescu
829044de59 Revert unintented change 2023-06-29 17:15:48 +09:00
Cootz
87308abec2
Merge branch 'master' into restore-scores-after-bearmap-reinstallation 2023-06-29 08:29:41 +03: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
Dean Herbert
34f53965c4 Never remove significant digits from stsar rating displays
Closes https://github.com/ppy/osu/issues/24079.
2023-06-29 13:55:04 +09:00
Bartłomiej Dach
90cb3dac86
Merge pull request #24076 from bastianpedersen/localise-chat-notifications
Localise chat related notifications
2023-06-28 22:36:53 +02:00
Bastian Pedersen
ea87000539 Localise chat related notifications 2023-06-28 21:11:56 +02:00
Bartłomiej Dach
27eef6996b
Merge branch 'master' into fix-flip-undo-states 2023-06-28 20:49:42 +02:00
Bartłomiej Dach
e4e08c0f5f
Fix selection handlers eating hotkey presses they didn't handle 2023-06-28 20:48:22 +02:00
Bartłomiej Dach
e1600b3d72
Merge branch 'master' into fix-editor-save-failure 2023-06-28 19:56:58 +02:00
Dean Herbert
5d209b3ffc Change default availability in MultiplayerRoomUser to Unknown 2023-06-28 16:38:20 +09:00
Dan Balasescu
1ca4e39fc3 Allow legacy scores to be displayed in "classic" scoring mode 2023-06-28 16:30:50 +09:00
Dan Balasescu
af25ffbe81 Remove JSON output 2023-06-28 16:15:44 +09:00
Dan Balasescu
09bc8e45de Refactoring 2023-06-28 16:14:32 +09:00
Dean Herbert
fec086aec8 Fix OnlinePlayBeatmapAvailabilityTracker not passing through Unknown state 2023-06-28 16:02:46 +09:00
Dean Herbert
3883c28b15 Add visual display in participants list when availability is still being established 2023-06-28 16:02:46 +09:00
Dean Herbert
664a2b2255 Force a beatmap availability state change when selected item is changed 2023-06-28 16:02:46 +09:00
Dean Herbert
91354b1570 Avoid performing any actions when BeatmapAvailability is updated to Unknown 2023-06-28 16:01:54 +09:00
Dan Balasescu
e291dff5ad Fix imported scores not getting LegacyTotalScore 2023-06-28 14:50:16 +09:00
Dean Herbert
29376ffcc0 Trigger state change when flipping via hotkey in the editor
This will trigger a change even if nothing happens. But I think that's
okay (not easy to avoid) because the change handler should be aware that
nothing changed, if anything.

Closes https://github.com/ppy/osu/issues/24065.
2023-06-28 13:52:51 +09:00
Dean Herbert
99e55bb9c0 Add logging and Debug.Fail on detached beatmap detection 2023-06-28 12:21:05 +09:00
Dean Herbert
1d4380cfd0
Merge pull request #24058 from peppy/full-term-exact-match
Add support for matching full terms at song select using suffixed `!`
2023-06-28 12:14:15 +09:00
Dean Herbert
b3f2a3ccdf Use more correct localised string source for "sign out" text 2023-06-28 12:11:40 +09:00
Dean Herbert
bc26d52dbd
Merge pull request #24067 from bdach/fix-difficulties-not-deleting-from-db
Fix delete difficulty flow not actually deleting the difficulty from realm
2023-06-28 12:06:01 +09:00
Dean Herbert
076f41be12
Merge pull request #24059 from peppy/add-editor-rotate-hotkeys
Add support for `Ctrl` + `<` / `>` to rotate selection in editor
2023-06-28 12:03:34 +09:00
Bartłomiej Dach
6876566530
Fix difficulty deletion not deleting records from realm 2023-06-27 23:43:00 +02:00
Bartłomiej Dach
eb82bd3871
Merge pull request #24064 from bastianpedersen/localise-common-game-notifications
Localise common game notifications
2023-06-27 22:40:22 +02:00
Bartłomiej Dach
9be2d9d62e
Fix hotkey presses generating unnecessary undo history
The buttons don't check whether the operation they correspond to is
possible to perform in the current state of the selection box, so not
checking `Can{Reverse,Rotate}` causes superfluous undo states to be
added without any real changes if an attempt is made to reverse or
rotate a selection that cannot be reversed or rotated.
2023-06-27 22:25:04 +02:00
Bartłomiej Dach
17ed45d07c
Mention hotkeys in button tooltips 2023-06-27 22:04:15 +02:00
Bartłomiej Dach
54280f06be
Switch to == true 2023-06-27 22:02:15 +02:00
Bartłomiej Dach
ad3a470eaf
Enable NRT in SelectionBox 2023-06-27 22:01:44 +02:00
Bartłomiej Dach
eb6bdb5a38
Merge pull request #23926 from ItsShamed/hud/kc-skinnable
Make key counter skinnable
2023-06-27 21:57:41 +02:00
Bartłomiej Dach
bf99fc61b8
Trim full phrase filters in a more precise manner 2023-06-27 21:50:36 +02:00
Bartłomiej Dach
e3d97b37f1
Rename MatchMode.{None -> Substring} 2023-06-27 21:28:37 +02:00
Bartłomiej Dach
06654dc618
Merge branch 'master' into full-term-exact-match 2023-06-27 21:27:39 +02:00
Bastian Pedersen
62dcd513ca Fix XML doc not mirroring string 2023-06-27 21:02:44 +02:00
Bastian Pedersen
8a2cd57f4e Add back missing punctunation 2023-06-27 21:01:39 +02:00
Bastian Pedersen
37ee3a7bbd Localise common game notifications 2023-06-27 20:56:35 +02:00
Bartłomiej Dach
af66ccbfdf
Merge branch 'master' into hud/kc-skinnable 2023-06-27 20:35:47 +02:00
Dean Herbert
8e80e2fa32 Fix incorrect realm copy logic when a beatmap becomes detached from its set
The code here was assuming that if the beatmap which is having changes
copied across does not exist within the `BeatmapSet.Beatmaps` list, it
was not yet persisted to realm.

In some edge case, it can happen that the beatmap *is* persisted to
realm but not correctly attached to the beatmap set. I don't yet know
how this occurs, but it has caused loss of data for at least two users.

The fix here is to check realm-wide for the beatmap (using its primary
key) rather than only in the list. We then handle the scenario where the
beatmap needs to be reattached to the set as a seprate step.

---

This does raise others questions like "are we even structuring this
correctly? couldn't a single beatmap exist in two different sets?"

Maybe, but let's deal with that if/when it comes up.
2023-06-27 18:20:01 +09:00
Dan Balasescu
6e2369e651 Add xmldoc on LegacyTotalScore 2023-06-27 17:18:32 +09:00
Dean Herbert
c6d952abe3 Add support for Ctrl + < / > to rotate selection in editor
As discussed in https://github.com/ppy/osu/discussions/24048.
2023-06-27 17:01:41 +09:00
Dean Herbert
7ddbf4eaa7 Add a visual effect when keyboard shortcuts are used to trigger selection box buttons 2023-06-27 17:01:13 +09:00
Dean Herbert
41890cfc65 Change JudgementCountController to a Component and remove handling overrides 2023-06-27 16:39:21 +09:00
Dean Herbert
8bd6f7a46a Rename ClicksPerSecondCalculator to ClicksPerSecondController 2023-06-27 16:38:46 +09:00
Dean Herbert
de23a4691e Change JudgementCountController to a Component 2023-06-27 16:38:15 +09:00
Dean Herbert
113b570bd4 Move controllers above skinnable elements in initialisation order 2023-06-27 16:37:23 +09:00
Dean Herbert
e21583ff1b Refactor InputCountController to not require being added to foreign body via Attach
I've made the flow match `ClicksPerSecondCalculator` as close as
possible. Hopefully this reads better.
2023-06-27 16:36:00 +09:00
Dean Herbert
c423f77d53 Add support for matching full terms using suffixed ! 2023-06-27 15:34:33 +09:00
Dean Herbert
702266198b Add missing "title=" search support at song select 2023-06-27 15:21:13 +09:00
Dan Balasescu
0c5c09597c Store old total score as LegacyTotalScore 2023-06-27 14:59:40 +09:00
Bartłomiej Dach
40ceb4dfac
Fix incorrect indent size 2023-06-26 22:40:25 +02:00
Bartłomiej Dach
9c30b1d3e0
Merge branch 'master' into exact-match-song-select 2023-06-26 22:33:50 +02:00
Bartłomiej Dach
4cb122dad4
Escape user input before embedding into regex 2023-06-26 22:27:48 +02:00
Bartłomiej Dach
8a7a42b7ec
Remove weird nullable enable and double licence header 2023-06-26 22:19:52 +02:00
timiimit
e1cbcabe0b
Fix skip not always triggering in multiplayer 2023-06-26 21:26:41 +02:00
Bartłomiej Dach
7200855d46
Rename Judgement{Tally -> CountController} 2023-06-26 19:30:04 +02:00
Bartłomiej Dach
8d91580dc1
Rename {KeyCounter -> InputCount}Controller 2023-06-26 19:27:42 +02:00
Bartłomiej Dach
4ac48e4cd8
Group input handling members together 2023-06-26 19:25:52 +02:00
Bartłomiej Dach
ff562e2dd7
Remove redundant guard
In this particular case guarding with `.IsNull()` makes no sense, as the
`Trigger` is supplied in constructor and cannot feasibly be null. Doing
that only makes sense in scenarios where BDL / dependency injection is
involved.
2023-06-26 19:25:52 +02:00
Bartłomiej Dach
dbd76c1193
Fix attempting to add key counter controller to hierarchy in multiple places 2023-06-26 19:02:49 +02:00
Bartłomiej Dach
cc45ec4fff
Mark IHasRecordingHandler.Recorder nullable 2023-06-26 18:52:05 +02:00
Dan Balasescu
a9c65d200a Initial conversion of scores 2023-06-26 22:19:01 +09:00
Dan Balasescu
8e79510793 Add migration for total score conversion 2023-06-26 21:53:21 +09:00
Dean Herbert
a74547c43c Add exact match support at song select 2023-06-26 18:26:44 +09:00
Dean Herbert
14c95f4584 Apply NRT to FilterCriteria 2023-06-26 17:54:11 +09:00
Dean Herbert
44c08f3944 Add xmldoc for KeyCounterController 2023-06-26 16:47:33 +09:00
Dean Herbert
084354a8dc Split out interfaces from RulesetInputManager and improve xmldoc 2023-06-26 16:34:57 +09:00
Dean Herbert
c8e081c2b6 Remove unused interface 2023-06-26 16:32:19 +09:00
Dean Herbert
ec20942830 Actuall add composite component to hierarchy 2023-06-26 16:24:36 +09:00
Dean Herbert
3a2dd0e7dd Move argon key counter to right to match stable expectations 2023-06-26 16:22:38 +09:00
Dean Herbert
52fdeeb491 Improve positioning and positioning code clarity for argon / triangles implementations 2023-06-26 16:20:51 +09:00
Dean Herbert
ba7f472247 Split padding out into constant to fix weird looking math 2023-06-26 16:05:57 +09:00
Dean Herbert
0c869367e1
Merge branch 'master' into hud/kc-skinnable 2023-06-26 15:53:16 +09:00
Dan Balasescu
e1d723a2cc Merge branch 'master' into diffcalc-total-scorev1 2023-06-26 14:32:14 +09:00
Bastian Pedersen
506829d9a5
Merge branch 'master' into localise-multiplayer-countdown-buttons 2023-06-26 07:28:05 +02:00
Dean Herbert
b240ce295b Rename class and key to better match expectations 2023-06-26 13:38:34 +09:00
Dean Herbert
1abce098b4 Apply nullability to login form related classes 2023-06-26 13:26:07 +09:00
Dean Herbert
372cef3c0a Merge branch 'master' into ui-login-spacing-fix 2023-06-26 13:24:26 +09:00
Dean Herbert
ac0c988d49 Fix weirdly named test method and add xmldoc 2023-06-26 13:21:29 +09:00
Dean Herbert
8d2dccbda5 Remove pointless zero opacity specification 2023-06-26 13:19:07 +09:00
Dean Herbert
55ab27c5b6
Merge pull request #24022 from frenzibyte/fix-open-user-profile-argument
Fix `OpenUserProfile` links having multiple argument types
2023-06-26 13:13:05 +09:00
Joseph Madamba
5477ef6bfb
Remove unused usings 2023-06-25 12:58:51 -07:00
Joseph Madamba
ccc4d16096
Remove most custom styling of user dropdown 2023-06-25 12:46:00 -07:00
Joseph Madamba
6ebc2581c2
Normalise login overlay padding/spacing 2023-06-25 12:26:01 -07:00
Joseph Madamba
671f84e32b
Remove unnecessary container 2023-06-25 12:15:03 -07:00
Joseph Madamba
4582faee79
Refactor login panel to not inherit FillFlowContainer 2023-06-25 12:06:02 -07:00
Bastian Pedersen
a7153478d6 Use newly create localised strings for buttons 2023-06-25 21:03:07 +02:00
Bastian Pedersen
59fa46bbdd Create localisation string class for multiplayer countdown buttons 2023-06-25 21:02:51 +02:00
Joseph Madamba
4a3b8c405e
Fix login error text adding unnecessary spacing 2023-06-25 11:57:17 -07:00
Joseph Madamba
442fda3598
Remove using aliases 2023-06-25 11:39:33 -07:00
Joseph Madamba
1058f434d7
Update login overlay background to conform to other overlays 2023-06-25 11:39:32 -07:00
Joseph Madamba
25c9bf4061
Improve and refactor LoginPanel test scene to use LoginOverlay 2023-06-25 11:39:32 -07:00
Joseph Madamba
f87ac3f405
Merge remote-tracking branch 'upstream/master' into pr/23331 2023-06-25 10:01:32 -07:00
tsrk
350d722c8d
Merge branch 'master' into hud/kc-skinnable 2023-06-25 15:42:08 +02:00
tsrk
a7088ffe22
revert: bring back old attachment flow
As discussed, this would bring more problems that anything.

Refs: 4c39708, f83a4f4
2023-06-25 15:21:55 +02:00
Bartłomiej Dach
4215ca313f
Add missing using 2023-06-25 14:36:21 +02:00
Dean Herbert
3d1a8aeb54 Use more understandable cancel button text 2023-06-25 21:25:16 +09:00
Dean Herbert
95e8dd2e8e
Don't attempt to access notifications before loaded
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-25 21:25:07 +09:00
Bartłomiej Dach
a7202721ff
Merge branch 'master' into no-confirmation-on-update-restart 2023-06-25 13:35:21 +02:00
Bartłomiej Dach
25842105ce
Merge pull request #23976 from peppy/gameplay-sample-trigger-source-correctness
Adjust `GameplaySampleTriggerSource` to only switch samples when close enough to the next hit object
2023-06-25 08:23:55 +02:00
Dean Herbert
922fe927ac Update resources 2023-06-25 15:18:56 +09:00
Dean Herbert
5806153cfd Update framework 2023-06-25 12:00:14 +09:00
Bartłomiej Dach
d7ae430ec2
Merge branch 'master' into framework-update 2023-06-24 18:47:52 +02:00
Dean Herbert
ca402c4d2f Update framework 2023-06-25 00:38:19 +09:00
Salman Ahmed
9a5f033a0f Change OpenUserProfile argument type to always use IUser 2023-06-24 18:12:35 +03:00
Bartłomiej Dach
e273c223a8
Fix some more missed CI inspections 2023-06-24 17:11:38 +02:00
Bartłomiej Dach
df2dcf85b4
Fix wrong disable 2023-06-24 17:07:42 +02:00
Bartłomiej Dach
e3a89a6273
Fix remaining obvious CI inspections 2023-06-24 16:07:01 +02:00
Bartłomiej Dach
2c1a44da89
Revert nullability enable in BeatmapBackground
Due to varying expectations in handling of `Beatmap`. Some places allow
or expect null and some don't. Needs to be looked at closer separately.
2023-06-24 15:40:06 +02:00
Bartłomiej Dach
66ef199fa4
Revert nullability enable in Score (and related changes)
Causes several knock-on inspections in `OsuGame` et al. Probably best
addressed in a separate pass, because treatment is mixed at best (some
places nullcheck, some expect non-null).
2023-06-24 15:35:07 +02:00
Bartłomiej Dach
8fdd599b39
Match field NRT annotation in ctor argument 2023-06-24 15:17:14 +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
Bartłomiej Dach
354e85a2e1
Trim redundant BDL nullability spec 2023-06-24 14:35:23 +02:00
Dean Herbert
2bda63c2c8 Merge branch 'master' into mass-nrt 2023-06-24 09:59:15 +09:00
Dean Herbert
58e6b3782b Fix a couple of remaining issues 2023-06-24 09:58:36 +09:00
Bartłomiej Dach
23aa1752c3
Merge pull request #24009 from peppy/fix-touch-input-controls-floating-fruits
Change "floating fruits" mod to only apply adjustments to the playfield
2023-06-23 23:26:20 +02:00
Salman Ahmed
ff17685bc3 Fix OpenUserProfile links having multiple argument types 2023-06-23 22:38:16 +03:00
Salman Ahmed
c5771912db
Merge branch 'master' into tournament-chatcolor 2023-06-23 22:23:33 +03:00
Salman Ahmed
7a771609f9 Reword and fix typo 2023-06-23 22:20:25 +03:00
Dan Balasescu
5fadadc3d0 Merge branch 'master' into diffcalc-total-scorev1 2023-06-24 02:46:15 +09:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dan Balasescu
06565871d6 Add flag to disable computing legacy scoring values 2023-06-24 01:03:18 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dean Herbert
1dc7c05c12
Merge branch 'master' into no-confirmation-on-update-restart 2023-06-23 15:33:01 +09:00
Dean Herbert
f66b787b12 Show ongoing operations in exit confirmation dialog
Also changes the button to a dangerous button, forcing user acknowledgement
2023-06-23 15:20:19 +09:00
Dean Herbert
693b7c9906 Reorganise resolved fields in MainMenu 2023-06-23 15:19:47 +09:00
Dean Herbert
7fa07805b0 Expose all notifications from INotificationOverlay
Also fixes `HasOngoingOperations` not actually working.
2023-06-23 15:19:21 +09:00
Dean Herbert
20aedc82ac Remove unused code 2023-06-23 14:47:32 +09:00
Dean Herbert
6df617d536 Rename ExitConfirmOverlay to be more explicit about purpose 2023-06-23 14:46:38 +09:00
Dean Herbert
11a97e1bb8 Move confirmation bypass implementation to MainMenu to allow for more correct logic 2023-06-23 14:42:56 +09:00
Dean Herbert
08b3c0cce0 Change "floating fruits" mod to only apply adjustments to the playfield
Avoids things like touch screen inputs also being flipped.

Note that these adjustments can't be applied directly to the playfield
due to how playfields are used in various rulesets (basically relying on
the `PlayfieldAdjustContainer` to get things in the right place).

Closes #24000.
2023-06-23 14:18:43 +09:00
Dean Herbert
343271751a Add Schedule to ensure correct thread for UI code 2023-06-23 14:07:33 +09:00
Dean Herbert
ce1579f2fe Bind to API.State instead of API.User 2023-06-23 14:05:02 +09:00
Dean Herbert
64b726d5ec Fix nested logic not being completely correct (favouring already-passed rather than near-future) 2023-06-23 13:48:13 +09:00
Bartłomiej Dach
c06b825d9b
Merge branch 'master' into comment-logged-out 2023-06-22 23:19:00 +02:00
Bartłomiej Dach
1672608a87
Document why things were done in DummyAPIAccess 2023-06-22 23:08:30 +02:00
Bartłomiej Dach
786deec296
Rename and xmldoc members 2023-06-22 23:00:52 +02:00
Bartłomiej Dach
0ce4d17e30
Merge pull request #23888 from peppy/fix-intro-playing-twice
Fix music sometimes restarting twice if exiting song select with no beatmap selected
2023-06-22 22:49:15 +02:00
Bartłomiej Dach
a753c89dea
Merge pull request #23974 from peppy/fix-multiplayer-present-beatmap
Fix presenting beatmaps while in a multiplayer room not working
2023-06-22 22:48:48 +02:00
Liam DeVoe
21bed336c6 adjust DummyAPIAccess to more closely match APIAccess
wrt logging in and out
2023-06-22 16:01:12 -04:00
Bartłomiej Dach
a11b3a67fb
Merge branch 'master' into skin-editor-beatmap-skin-disable 2023-06-22 20:30:51 +02:00
Bartłomiej Dach
aea5eb37dc
Remove unused using directive 2023-06-22 20:24:44 +02:00
Bartłomiej Dach
79606317ab
Remove redundant parentheses 2023-06-22 20:02:10 +02:00
Bartłomiej Dach
65d4506ef2
Merge branch 'master' into save-replay-hotkey 2023-06-22 18:51:30 +02:00
Bartłomiej Dach
28dc5640a3
Merge pull request #23972 from peppy/notifications-during-pause
Allow notifications while the game is paused (or in break time)
2023-06-22 18:31:39 +02:00
Dean Herbert
07a00e8afd
Fix typo in comment
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-22 00:02:02 +09:00
Dean Herbert
7b4cbea362
Allow nullable to fix test usages
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-22 00:01:48 +09:00
Dean Herbert
59b1f08d53 Don't require exit confirmation when there are no ongoing operations that could be interrupted 2023-06-21 19:06:28 +09:00
Dean Herbert
c3f772f0da Add method to queue a restart after app is exited (when supported) 2023-06-21 19:06:28 +09:00
Dean Herbert
655491ae2d Fix potential null ref in ResultsScreen 2023-06-21 17:50:06 +09:00
Dean Herbert
1907beb0c9 Add FireAndForget to stray Task.Run 2023-06-21 17:48:55 +09:00
Dean Herbert
9ca772421d Improve and combine logic that exists in two classes 2023-06-21 17:48:12 +09:00
Dean Herbert
4ff5275208 Make IGameplayClock optional in GameplaySampleTriggerSource to ease testing 2023-06-21 17:33:42 +09:00
Dean Herbert
cb0f642ad7 Change skin editor flow to always save on toggle
This also moves the beatmap skin disable toggle to on toggle, in line
with review feedback.

I've decided to always apply the disable, not just on the `Player`
screen. It should be assumed that if a user is in the skin editor they
are never going to need access to this anyway.
2023-06-21 16:14:47 +09:00
Dean Herbert
366dd96875 Use bindable lease instead of reimplementing the same thing locally 2023-06-21 16:09:54 +09:00
Liam DeVoe
cc764afe3e use two separate buttons for posting / login 2023-06-21 00:58:43 -04:00
Liam DeVoe
8460873e61 move commitButton.Text update to appropriate method 2023-06-21 00:37:54 -04:00
Dean Herbert
cb07f2399f Apply NRT to GameplaySampleTriggerSource 2023-06-20 21:03:55 +09:00
Dean Herbert
04dad6c6e8 Use IGameplayClock to ensure our clock source is correct 2023-06-20 20:47:56 +09:00
Dean Herbert
0e86102681 Fix nested lookups 2023-06-20 20:45:02 +09:00
Dean Herbert
786d5a394b Add back optimisation and increase time allowance slightly 2023-06-20 20:30:07 +09:00
Dean Herbert
555ce7684b Adjust GameplaySampleTriggerSource to only switch samples when close enough to the next hit object
Closes #23963.

To simplify things, I've removed the optimisation of using
`AliveObject`s because it would break the way this whole lookup works.
2023-06-20 20:06:07 +09:00
Dean Herbert
d7b486e2ac Disable beatmap skinning when entering the skin editor 2023-06-20 19:18:17 +09:00
Dean Herbert
2e02b4a85b Apply more correct fix for double-playing menu track 2023-06-20 18:35:51 +09:00
Dean Herbert
0a81170bca Merge branch 'master' into fix-intro-playing-twice 2023-06-20 18:34:22 +09:00
Dean Herbert
10ed3787a0 Don't show song select screen when local user doesn't have permission to add an item 2023-06-20 18:27:19 +09:00
Dean Herbert
dc1b4a39aa Fix presenting beatmaps while in a multiplayer room not working 2023-06-20 18:23:59 +09:00
Dean Herbert
ff8350bac6 Update framework 2023-06-20 17:43:52 +09:00
Dean Herbert
7b69b92eab Allow notifications while the game is paused (or in break time)
RFC. This is to allow notifications to show at the pause screen
(specifically for #23967, where exports are now happening).

Not sure about the break time part of this, but might be fine? The
toasts are immediately flushed before break time ends.
2023-06-20 16:57:35 +09:00
Dean Herbert
4bd121d3b8 Also add hotkey to export replays 2023-06-20 16:54:37 +09:00
Dean Herbert
7c5813c05a Fix OsuAnimatedButton not flashing when triggered via code 2023-06-20 16:34:22 +09:00
Dean Herbert
1e0e29847f Apply NRT and hotkey support to save replay button at results screen 2023-06-20 16:29:15 +09:00
Liam DeVoe
60eedbafd1 rename GetTextBoxPlaceholder to GetPlaceholderText 2023-06-19 22:05:18 -04:00
Liam DeVoe
f7dde53f9b use runOnceImmediately instead of duplicating logic 2023-06-19 18:20:16 -04:00
Liam DeVoe
591277e0f9 extract button text properties to methods, show login overlay on click 2023-06-19 18:10:37 -04:00