Editor
Fix changing slider path segment type not being undoable ([#26423] by @B3nn1)
Add precise scaling control to osu! editor ([#28309] by @OliBomby)
This adds the scale popover tool from osu!stable to lazer. I tried to mimic the original functionality as closely as possible, and in some aspects improve it.
The default hotkey for the scaling tool which is Ctrl+E
(to avoid conflicts with the skin layout editor).
The maximum value of the scale slider is determined based on the current choice of origin and axis. The maximum value will always be the maximum scaling value that still keeps the scaling objects on screen.
This also slightly changes how the rotation popover works. Now it will automatically select the text in the textbox input, so the user can instantly type the value they want after opening the tool.
Fix legacy osu!mania note body animation not resetting sometimes ([#28339] by @bdach)
Add ability to change position, spacing, and rotation of the positional snap grid in the editor ([#26309] by @OliBomby)
Allow flip operations in mania editor ([#28421] by @bdach)
Fix stack leniency not applying immediately after change ([#28441] by @bdach)
Fix changing key count in editor not immediately updating ([#28445] by @bdach)
Allow modifying hold note start/end time via mania composer playfield ([#28458] by @bdach)
Move timeline toggle controls to "view" menu ([#28505] by @bdach)
master | [b42752] | [03049d] |
---|---|---|
editor playfield scale | gameplay playfield scale |
---|---|
Reduce editor opacity of several editor components when hovering over composer ([#28507] by @bdach)
Add support for editing per-node hitsounds on sliders ([#23443] by @OliBomby)
Display breaks on editor timeline & allow manually adjusting their duration ([#28523] by @bdach)
Add automatic generation of breaks in editor ([#28528] by @bdach)
Breaks are automatically inserted between objects if there is ample time to do so, namely there must be at least:
- 200ms between the last object before break and the break's start
- 650ms for the break itself
- 2 beat lengths between the break's end and the first object after break. This is a departure from stable wherein this was ruleset- and AR-dependent (by way of using preempt time), but in talking with the NAT it looked like most didn't know the specifics of how that worked so I decided I'd just use something simpler. This also probably works better for something like mania wherein the "preempt time" is largely user-settings-dependent (scroll speed).
Breaks that have been manually adjusted are not moved by the automatic regeneration on changes, unless they would break gameplay (by having an object's duration intersect a break), in which case they are forcibly removed. This manual adjustment tracking state is dodgy at best (will not work properly with undo/redo, because this info is not and should not be serialised out by the legacy beatmap encoder, which means that the manual tracking will be dropped upon undo), but it is what it is. That subsystem needs to get replaced by something else at some point anyway.
Fix osu!taiko playfield not updating after changing scroll speed ([#28444] by @bdach)
Smaller changes
- Refactor scale handling in editor to facilitate reuse ([#26643] by @OliBomby)
- Fix path blueprint becoming de-synced from slider path size ([#28288] by @Hecatia-Lapislazuli)
- Fix editor not saving when textbox is focused during exit procedure ([#26717] by @peppy)
- Fix for nearly straight sliders causing a crash ([#28297] by @Hecatia-Lapislazuli)
- Fix performance overhead from ternary state bindable callbacks when selection is changing ([#28387] by @bdach)
- Disallow running save-related operations concurrently ([#28420] by @bdach)
- Fix crash on drag selection via timeline while placement is active ([#28478] by @bdach)
Framework
- Fix incorrect assertion and possible nullref (ppy/osu-framework#6293 by @smoogipoo)
- Bring back SDL2 by default, lock SDL3 behind environment variable (ppy/osu-framework#6292 by @smoogipoo)
- Update Veldrid (ppy/osu-framework#6295 by @smoogipoo)
- Update SDL3-CS (ppy/osu-framework#6296 by @bdach)
- Add a way to make Drawable clicks not change focus (ppy/osu-framework#6297 by @smoogipoo)
- Add back support for opening dropdown by setting internal states (ppy/osu-framework#6298 by @smoogipoo)
- Update framework ([#28286] by @peppy)
- Fix test failures due to crosstalk via static
AppSettings.SaveReplays
(ppy/osu-server-spectator#236 by @bdach) - Refactor
KeyCombination.ContainsKey()
and.ContainsKeyPermissive()
for better extensibility (ppy/osu-framework#6229 by @Susko3) - Add back
SDL2BatteryInfo
for desktop platforms ([#28294] by @Susko3) - Unify logging to use ASP.NET default console logger (ppy/osu-server-spectator#215 by @bdach)
- Fix IL3000 warning on Android (ppy/osu-framework#6300 by @Susko3)
- Show storyboard element path in
Draw Visualiser
([#28305] by @EVAST9919) - Fix crash when dropdown is removed from hierarchy during select (ppy/osu-framework#6302 by @smoogipoo)
- Compute total score without mods during standardised score conversion ([#28277] by @bdach)
- Fix
GameHost.Collect()
being called twice on android (ppy/osu-framework#6272 by @Susko3) - Update framework ([#28338] by @peppy)
- Always compute slider ball rotation based on tangent ([#28343] by @Hecatia-Lapislazuli)
- Calculates the rotation based on an approximation of the tangent at a given point on the slider's path, rather than calculating it based on the previous position in the map.
- Fix
KeyCombination.IsPressed()
tripping assertions when empty (ppy/osu-framework#6304 by @bdach) - Mark
FindClosestParent<T>()
callers as possibly null-returning (ppy/osu-framework#6303 by @bdach) - Avoid
ChatAckRequest
failures flooding console inOsuGameTestScene
s ([#28357] by @peppy) - Remove OS username from log headers (ppy/osu-framework#6306 by @sineplusx)
- Fix unable to drag-scroll on collections right-click menu ([#28371] by @smoogipoo)
- Update localisations (ppy/osu-resources#325 by @peppy)
- Fix
AssemblyRulesetStore
not marking rulesets as available ([#28380] by @peppy) - Fix occasional test failures on new menu content tests ([#28383] by @peppy)
- Make shader setter in
SpriteText
protected (ppy/osu-framework#6307 by @EVAST9919) - Disable primary constructor related inspections ([#28388] by @bdach)
- Move new screen footer to
OsuGame
and add temporarySongSelectV2
screen ([#28185] by @frenzibyte) - Fix auto picking maps on zero ban rounds ([#28436] by @omkelderman)
- Use more descriptive HitObject names for debugger displays ([#28465] by @smoogipoo)
- Fix excessive
applause
audio balancing in result screen ([#28475] by @Joppe27) - Ignore "editlist" when decoding mp4/mov videos (ppy/osu-framework#6311 by @bdach)
- This would cause storyboard videos to not play back the same way stable (and most other video players) plays them back.
- Disable the automatic offset adjustment button if the offset of the previous play was 0 ([#28481] by @shiumano)
- Replace audio effect
BindableList
by Add/Remove methods (ppy/osu-framework#6310 by @smoogipoo) - Annotate
ControlPoint
andMod
for AOT trimming support ([#28503] by @smoogipoo) - Update framework ([#28518] by @bdach)
- Update localisations (ppy/osu-resources#326 by @peppy)
- Fix typo in ScoreProcessor ([#28540] by @ssz7-ch2)
Gameplay
Add skinnable rank display ([#24475] by @nanashi-1)
Implement basic pass and fail storyboard layer support ([#28480] by @bdach)
Smaller changes
- Enforce difficulty setting limits during decode ([#28200] by @Hecatia-Lapislazuli)
- Fixes some edge case beatmaps not working as expected.
- Fix cinema mod not hiding playfield skin layer ([#28332] by @peppy)
- Handle replay frames with negative time delta appropriately ([#24138] by @tybug)
- This may fix some longstanding "lazer playback doesn't match stable" issues.
- Fix "Argon" accuracy counter layout when under 10% and wireframe off ([#28443] by @ColdVolcano)
Gameplay (osu!)
Add ranked support for "Traceable" mod ([#28285] by @tsunyoku)
Make judgements follow hitcircles and enable them in magnetised, repel and depth ([#27977] by @DavidBeh)
Makes judgements appear based on the DrawableHitobject
s position instead of the Hitobject
s position which is not updated by mods moving single Hitobjects. They move with hitobjects as long as the drawables are alive, so they move with the shadow of hits and stay on misses.
Judgements are now enabled for magnetised, repel and depth.
Account for osu! circle radius when drawing playfield border ([#28504] by @bdach)
before | after |
---|---|
Adjust behaviour of hit animations toggle to match user expectations ([#28537] by @bdach)
This adjusts the animation to match stable almost perfectly. Which is what users have asked for.
Smaller changes
- Use countdown resume overlay for autopilot ([#28359] by @smoogipoo)
Gameplay (osu!catch)
- Remove rounding of slider velocity multiplier on juice streams ([#28337] by @bdach)
- Change osu!catch no-fail penalty to match osu! ([#28353] by @Givikap120)
Gameplay (osu!mania)
Fix missing texture on extremely long hold notes ([#28466] by @smoogipoo)
Gameplay (osu!taiko)
Add osu!taiko Constant Speed
mod ([#27341] by @Hiviexd)
This also makes constant scroll speed look much more accurate in the editor.
Implement relax mod for taiko ([#28472] by @bdach)
Smaller changes
- Correct scale of
taiko-glow
element to match stable ([#28311] by @Joppe27)
Next Release
- Fix scale control key binding breaking previous defaults ([#28559] by @peppy)
- Oops from [#28309]. Noticed while writing changelog notes up. Given how many times we've accidentally done this we probably need some protection or a change to how we serialise these 😅.
Online
- Allow
ScoreUploader
to process replays concurrently (ppy/osu-server-spectator#235 by @bdach) - Add client/server models & operations for "daily challenge" feature ([#28194] by @bdach)
- Coming soon.
- Announce currently active "daily challenge" playlist to clients (ppy/osu-server-spectator#234 by @bdach)
- Coming soon.
- Minimum viable prototype of "daily challenge" feature ([#28195] by @bdach)
- Coming soon.
- Derive API response version from game version ([#28349] by @bdach)
- Fix playlist total time not considering rate adjust mods ([#28399] by @matheus-cesquim)
- Add minimal viable new screen for daily challenge feature ([#28440] by @bdach)
- Coming soon.
- Implement time remaining display for daily challenge screen ([#28456] by @bdach)
- Coming soon.
- Implement event feed view for daily challenge screen ([#28468] by @bdach)
- Coming soon.
Platform
Revert windows 16px icon to original version ([#28327] by @peppy)
This also fixes the 48px version looking uncanny due to smaller paddings. Sorry for having to put up with this eyesore for so long!.
Song Select
Make ctrl-up/down change speed modifier of mods ([#28071] by @Fabiano1337)
Ctrl + Up / Down now increase or decrease rate adjust mod's speed in song select.
UI
Allow previewing audio of playlist items ([#28333] by @peppy)
Smaller changes
- Add new footer back button and fix shearing being different between components ([#28183] by @frenzibyte)
- For future use!
- Fix main menu button backgrounds not covering their entire width sometimes ([#28358] by @bdach)
- Bypass external link dialog for links on the trusted osu! domain ([#28363] by @peppy)
- Add basic animation to new footer and buttons ([#28184] by @frenzibyte)
- For future use!
- New leaderboard score card design implementation ([#22237] by @mk56-spn)
- For future use!
New Contributors
- @Hecatia-Lapislazuli made their first contribution in https://github.com/ppy/osu/pull/28200
- @Hiviexd made their first contribution in https://github.com/ppy/osu/pull/27341
- @DavidBeh made their first contribution in https://github.com/ppy/osu/pull/27977
- @matheus-cesquim made their first contribution in https://github.com/ppy/osu/pull/28399
- @shiumano made their first contribution in https://github.com/ppy/osu/pull/28481
- @ssz7-ch2 made their first contribution in https://github.com/ppy/osu/pull/28540
Full Changelog: https://github.com/ppy/osu/compare/2024.523.0...2024.625.0