mirror of
https://github.com/ppy/osu.git
synced 2024-11-14 00:07:25 +08:00
1d9aaac2c2
`DrawableHitObject.OnKilled()` calls `UpdateResult()` to clean up a hitobject's state definitively with regards to the judgement result before returning the DHO back to the pool. As it turns out, if a consumer was relying on this code path (as taiko was in the case of nested strong hit objects), it would not work properly with pooling, due to `HitObjectContainer` unsubscribing from `On{New,Revert}Result` *before* calling the DHO's `OnKilled()`. This in turn would lead to users potentially getting stuck in gameplay, due to `ScoreProcessor` not receiving all results via that event path. To resolve, change the call ordering to allow hit result changes applied in `OnKilled()` to propagate normally. |
||
---|---|---|
.. | ||
Scrolling | ||
DrawableRuleset.cs | ||
DrawableRulesetDependencies.cs | ||
FrameStabilityContainer.cs | ||
GameplayCursorContainer.cs | ||
HitObjectContainer.cs | ||
IFrameStableClock.cs | ||
IPooledHitObjectProvider.cs | ||
JudgementContainer.cs | ||
ModIcon.cs | ||
Playfield.cs | ||
PlayfieldAdjustmentContainer.cs | ||
PlayfieldBorder.cs | ||
PlayfieldBorderStyle.cs | ||
ReplayRecorder.cs | ||
RulesetInputManager.cs |