mirror of
https://github.com/ppy/osu.git
synced 2024-12-15 02:33:02 +08:00
Merge pull request #17419 from peppy/fix-hitsound-regresssssssion
Fix hitsounds not always playing when they should
This commit is contained in:
commit
3b97de04b7
@ -500,12 +500,15 @@ namespace osu.Game.Rulesets.Objects.Legacy
|
|||||||
=> new LegacyHitSampleInfo(newName.GetOr(Name), newBank.GetOr(Bank), newVolume.GetOr(Volume), newCustomSampleBank.GetOr(CustomSampleBank), newIsLayered.GetOr(IsLayered));
|
=> new LegacyHitSampleInfo(newName.GetOr(Name), newBank.GetOr(Bank), newVolume.GetOr(Volume), newCustomSampleBank.GetOr(CustomSampleBank), newIsLayered.GetOr(IsLayered));
|
||||||
|
|
||||||
public bool Equals(LegacyHitSampleInfo? other)
|
public bool Equals(LegacyHitSampleInfo? other)
|
||||||
=> base.Equals(other) && CustomSampleBank == other.CustomSampleBank;
|
// The additions to equality checks here are *required* to ensure that pooling works correctly.
|
||||||
|
// Of note, `IsLayered` may cause the usage of `SampleVirtual` instead of an actual sample (in cases playback is not required).
|
||||||
|
// Removing it would cause samples which may actually require playback to potentially source for a `SampleVirtual` sample pool.
|
||||||
|
=> base.Equals(other) && CustomSampleBank == other.CustomSampleBank && IsLayered == other.IsLayered;
|
||||||
|
|
||||||
public override bool Equals(object? obj)
|
public override bool Equals(object? obj)
|
||||||
=> obj is LegacyHitSampleInfo other && Equals(other);
|
=> obj is LegacyHitSampleInfo other && Equals(other);
|
||||||
|
|
||||||
public override int GetHashCode() => HashCode.Combine(base.GetHashCode(), CustomSampleBank);
|
public override int GetHashCode() => HashCode.Combine(base.GetHashCode(), CustomSampleBank, IsLayered);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class FileHitSampleInfo : LegacyHitSampleInfo, IEquatable<FileHitSampleInfo>
|
private class FileHitSampleInfo : LegacyHitSampleInfo, IEquatable<FileHitSampleInfo>
|
||||||
|
Loading…
Reference in New Issue
Block a user