ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.52k stars 2.31k forks source link

Changing skin doesn't update every color in the editor timeline #10398

Closed Gabixel closed 3 years ago

Gabixel commented 4 years ago

Describe the bug: There are 2 (quite identical) ways to reproduce it: 1) Beatmap skin turned off (using skins):

2) Enabling Beatmap skin:

Screenshots or videos showing encountered issue: (the gif shows the second way) Beatmap Skin

osu!lazer version: 2020.1005.0

peppy commented 4 years ago

The reason for this is that skin changes are schedule to each individual DrawableHitObject in order to alleviate the load of applying the change. In gameplay this works fine, but in the editor the timeline is showing hitobjects outside of their normal Lifetime range.

Optimally, this would be something we can fix at a Playfield/LifetimeManagementContainer level to simplify things. @smoogipoo thoughts? We could probably add some kind of "LifetimeExtend" or "range" parameter that the editor controls in such cases.

Kind of overlapping behaviour with ScrollingHitObjectContainer, but not confident how this should be structured.

smoogipoo commented 4 years ago

It's not really overlapping, iirc SHOC doesn't handle LifetimeEnd - only LifetimeStart. So yeah maybe having support at LifetimeManagementContainer (which HOC derives from) is a nice way to go about it.

peppy commented 4 years ago

@smoogipoo I guess this may be covered by your incoming changes? Unassigning for now.

smoogipoo commented 4 years ago

Yep, lifetime extensions will cover this.

peppy commented 3 years ago

This has since been resolved.