- Use more correct json casing in
APIScoresCollection(#19226 by @peppy)
- Remove nullable disable annotation in the mods. (#19235 by @andy840119)
- Change carousel terminology to not use
InternalChildren(#19268 by @peppy)
- Cleanup pass on
FPSCounter(#19279 by @peppy)
- This class got a bit messy over multiple iterations. Also rate limits the sprite text updates to reduce any potential performance overhead.
A stepping stone towards better storage/processing of star ratings locally. The focus here is on the invalidation flow when difficulty algorithm changes occur, so I didn't put too much thought into the
BeatmapInfo / realm storage of the star rating.
This will nuke all local beatmaps' difficulties once. Seems like a good move to get everything in a consistent state. This will also handle legacy issues like "length" not being calculated, for users with very old databases.
I haven't tested with a large database yet, so feedback on how well this works is appreciated! There's no visible progress just yet, so if you notice nothing, that's probably a good thing. Note that it will automatically pause during gameplay.
Weirdly was not brought to our attention until now!
Dsplay toasts on beatmap/skin save (#19243 by @LukynkaCZE)
Adds missing visual feedback when saving.
- Fix editor timeline zoom rate being too slow for longer beatmaps (#19278 by @Cwazywierdo)
- Fix timeline
scrollzoom not correctly zooming to current mouse position (#19294 by @peppy)
- Fix timeline zoom focus point when using zoom buttons (#19296 by @smoogipoo)
Fix failed replays showing higher score than they should (#19263 by @frenzibyte)
Add basic touch support for osu!taiko (#17200 by @hongaaronc)
This is a first pass implementation of touch support for osu!taiko. Eventually we plan to give the user a lot more control over touch input customisation, but hopefully this will suffice until that point.
Please give it a go and shoot any feedback you have!
Performance point balance changes (#19181 by @Lawtrohux)
Changes included are:
- Nerf the Hidden global multiplier to increase the gap between EZHD and HD only scores.
- Addition of an EZ global multiplier nerf, as well as a difficulty PP nerf.
- Decrease the miss penalty, as combo scaling is not present in taiko.
- Increase the weight Accuracy has on Difficulty PP.
- Lower Accuracy and great hit window scaling, and split out length-bonus to allow for a new slight HDFL bonus to accuracy scaled by length.
- Removal of the NF multiplier to prevent sandbagging against the <50% end-fail mechanic
Replicate osu!(stable)'s hit target position with "Classic" mod (#17622 by @frenzibyte)
Remove score multiplier on difficulty-increasing mods with customised settings (#19208 by @frenzibyte)
This is a first step in balancing the recently exposed leaderboards. It will allow us to fix cases of users applying DT with a rate of 1.01x and still getting the full multiplier, as one example.
We'll continue to iterate on this (and address other mods like "Relax").
Fix editing a queued beatmap sometimes opening to the wrong selection (#19234 by @Cwazywierdo)
- Fix creating multiplayer game during server migration not joining new room correctly (#19189 by @peppy)
Highlight perfect slider tick/end values in beatmap info leaderboards (#19244 by @frenzibyte)
Replacing the existing maximum count display and moves that to a tooltip that displays when hovering over the statistic.
- Fix wiki overlay not handling path redirection properly (#19246 by @frenzibyte)
Bindable allocations in hitobject classes via lazy initialisation (#19225 by @frenzibyte)
Offers a roughly 50% improvement in performance and memory usage when creating osu! hit objects. Should be most noticeable in batch difficulty calculation.
- Fix startup crash on Android verison before 8.0 Oreo (ppy/osu-framework#5315 by @Susko3)
- Add mention of "compatibility mode" in windows version check error message (#19228 by @peppy)
- Replace culture-sensitive humanizer methods with fixed local reimplementations (#19221 by @bdach)
- Fix bad access to
Waveform.GetPoints()if waveform changes during regeneration (ppy/osu-framework#5316 by @peppy)
BeginPlayingInternalfiring actual errors when beatmap not available online (#19227 by @peppy)
- Fix unsafe value access in
WaveformGraphasync resampling logic (ppy/osu-framework#5318 by @frenzibyte)
Adds panel appearance and transition sounds, score rolling/ticking effects and additionally some dynamic panning to make the results screen a bit more interesting.
Dynamic panning also affecting the
AccuracyCircle / ranking SFX was a side-effect of implementation, but it feels kinda cool so I left it in?
Comes with a few caveats:
- Currently only shows when there are actual
.osufile changes (feature parity with stable). Eventually we'd want to show this for any changes (ie. if only the background has changed), but doing so requires a beatmap set level hash. I have a forward plan for making this happen, but it involves having individual file hashes stored and communicated client-server. Note that even with this limitation, it will still update all files in the beatmap (better than stable) because it's performing a full re-download.
- Any already imported beatmaps will not have a
LastOnlineUpdateset, therefore will not show available updates. At some point all beatmaps with a null value will be queried in the background to resolve this. Not a huge deal IMO.
- New imports are using the local cached beatmap info, which means in the super rare edge case that a beatmap is unranked and changed, it may be in an incorrect state even though its realm status shows that it's consistent. I've left a note about this in
BeatmapUpdaterbut not sure it's worth acting on, for now.
For this to work, the game will need to perform some background data fetching. It might take some seconds or minutes depending on the size of your library.
- Fix sorting mode not filling up to usable area in filter control (#19295 by @frenzibyte)
- Fix changelog overlay tests failing due to missing
CreatedAtdate (#19265 by @frenzibyte)
UpdateBeatmapSetButtonintermittent test failure (#19269 by @peppy)
- Fix one more case of referencing old mod select overlay in tests (#19298 by @frenzibyte)
Increase responsiveness of osu! logo triangles to the beat (#19264 by @TacoGuyAT)
This is a first implementation to build off. Figure it's easier to get this out as a "better than what we had" then build individual pieces into it.
- Frame time is currently displayed similar to stable (actual time between frames, not cpu time). Will probably change this to match the o!f display, but that requires more pieces to be exposed from the framework side.
- Tooltip is very temporary. I plan to replace it with the actual FPS display expanding out to a larger size to reveal more information.
- Fix FPS counter not being wide enough to show large fps numbers (#19273 by @peppy)
- Fix draw FPS being inaccurate due to using
ElapsedFrameTime(#19274 by @peppy)
- Avoid using
RollingCounterin fps counter (#19277 by @peppy)
OverlayContainerno longer blocking mouse move events (ppy/osu-framework#5313 by @frenzibyte)
- Fix floating mouse position not running correctly in single thread mode (#19240 by @peppy)
- Add the ability to save in the skin editor using system save hotkey (#19293 by @peppy)
Full Changelog: 2022.719.0...2022.723.0