mirror of
https://github.com/osukey/osukey.git
synced 2025-05-29 17:37:23 +09:00
Add back legacy custom sample banks
This commit is contained in:
parent
781095b96b
commit
3a9a82c80c
@ -8,6 +8,7 @@ using OpenTK.Graphics;
|
|||||||
using osu.Game.Tests.Resources;
|
using osu.Game.Tests.Resources;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using osu.Game.Audio;
|
using osu.Game.Audio;
|
||||||
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Rulesets.Objects.Types;
|
using osu.Game.Rulesets.Objects.Types;
|
||||||
using osu.Game.Beatmaps.Formats;
|
using osu.Game.Beatmaps.Formats;
|
||||||
using osu.Game.Beatmaps.Timing;
|
using osu.Game.Beatmaps.Timing;
|
||||||
@ -211,5 +212,21 @@ namespace osu.Game.Tests.Beatmaps.Formats
|
|||||||
Assert.IsTrue(hitObjects[1].Samples.Any(s => s.Name == SampleInfo.HIT_CLAP));
|
Assert.IsTrue(hitObjects[1].Samples.Any(s => s.Name == SampleInfo.HIT_CLAP));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void TestDecodeCustomSamples()
|
||||||
|
{
|
||||||
|
var decoder = new LegacyBeatmapDecoder { ApplyOffsets = false };
|
||||||
|
using (var resStream = Resource.OpenResource("custom-samples.osu"))
|
||||||
|
using (var stream = new StreamReader(resStream))
|
||||||
|
{
|
||||||
|
var hitObjects = decoder.Decode(stream).HitObjects;
|
||||||
|
|
||||||
|
Assert.AreEqual(0, ((LegacyDecoder<Beatmap>.LegacySampleControlPoint)hitObjects[0].SampleControlPoint).CustomSampleBank);
|
||||||
|
Assert.AreEqual(1, ((LegacyDecoder<Beatmap>.LegacySampleControlPoint)hitObjects[1].SampleControlPoint).CustomSampleBank);
|
||||||
|
Assert.AreEqual(2, ((LegacyDecoder<Beatmap>.LegacySampleControlPoint)hitObjects[2].SampleControlPoint).CustomSampleBank);
|
||||||
|
Assert.AreEqual(0, ((LegacyDecoder<Beatmap>.LegacySampleControlPoint)hitObjects[3].SampleControlPoint).CustomSampleBank);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
16
osu.Game.Tests/Resources/custom-samples.osu
Normal file
16
osu.Game.Tests/Resources/custom-samples.osu
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
osu file format v14
|
||||||
|
|
||||||
|
[General]
|
||||||
|
SampleSet: Normal
|
||||||
|
|
||||||
|
[TimingPoints]
|
||||||
|
2170,468.75,4,1,0,40,1,0
|
||||||
|
2638,-100,4,1,1,40,0,0
|
||||||
|
3107,-100,4,1,2,40,0,0
|
||||||
|
3576,-100,4,1,0,40,0,0
|
||||||
|
|
||||||
|
[HitObjects]
|
||||||
|
255,193,2170,1,0,0:0:0:0:
|
||||||
|
256,191,2638,5,0,0:0:0:0:
|
||||||
|
255,193,3107,1,0,0:0:0:0:
|
||||||
|
256,191,3576,1,0,0:0:0:0:
|
@ -289,9 +289,9 @@ namespace osu.Game.Beatmaps.Formats
|
|||||||
if (split.Length >= 4)
|
if (split.Length >= 4)
|
||||||
sampleSet = (LegacySampleBank)int.Parse(split[3]);
|
sampleSet = (LegacySampleBank)int.Parse(split[3]);
|
||||||
|
|
||||||
//SampleBank sampleBank = SampleBank.Default;
|
int customSampleBank = 0;
|
||||||
//if (split.Length >= 5)
|
if (split.Length >= 5)
|
||||||
// sampleBank = (SampleBank)int.Parse(split[4]);
|
customSampleBank = int.Parse(split[4]);
|
||||||
|
|
||||||
int sampleVolume = defaultSampleVolume;
|
int sampleVolume = defaultSampleVolume;
|
||||||
if (split.Length >= 6)
|
if (split.Length >= 6)
|
||||||
|
@ -5,6 +5,8 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using osu.Framework.Logging;
|
using osu.Framework.Logging;
|
||||||
|
using osu.Game.Audio;
|
||||||
|
using osu.Game.Beatmaps.ControlPoints;
|
||||||
using OpenTK.Graphics;
|
using OpenTK.Graphics;
|
||||||
|
|
||||||
namespace osu.Game.Beatmaps.Formats
|
namespace osu.Game.Beatmaps.Formats
|
||||||
@ -167,5 +169,25 @@ namespace osu.Game.Beatmaps.Formats
|
|||||||
Pass = 2,
|
Pass = 2,
|
||||||
Foreground = 3
|
Foreground = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal class LegacySampleControlPoint : SampleControlPoint
|
||||||
|
{
|
||||||
|
public int CustomSampleBank;
|
||||||
|
|
||||||
|
public override SampleInfo ApplyTo(SampleInfo sampleInfo)
|
||||||
|
{
|
||||||
|
var baseInfo = base.ApplyTo(sampleInfo);
|
||||||
|
|
||||||
|
if (CustomSampleBank > 0)
|
||||||
|
baseInfo.Name += CustomSampleBank;
|
||||||
|
|
||||||
|
return baseInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool Equals(ControlPoint other)
|
||||||
|
=> base.Equals(other)
|
||||||
|
&& other is LegacySampleControlPoint legacy
|
||||||
|
&& CustomSampleBank == legacy.CustomSampleBank;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user