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 | b42752c | 03049d4 |
---|---|---|
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
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 #28200
- @Hiviexd made their first contribution in #27341
- @DavidBeh made their first contribution in #27977
- @matheus-cesquim made their first contribution in #28399
- @shiumano made their first contribution in #28481
- @ssz7-ch2 made their first contribution in #28540
Full Changelog: 2024.523.0...2024.625.0