mirror of https://github.com/ppy/osu
Minor cleanups for Legacy Storyboard/Beatmap decoder
This commit is contained in:
parent
f3bb47ffce
commit
316a764f6f
|
@ -239,11 +239,11 @@ private void handleMetadata(string line)
|
|||
break;
|
||||
|
||||
case @"Source":
|
||||
beatmap.BeatmapInfo.Metadata.Source = pair.Value;
|
||||
metadata.Source = pair.Value;
|
||||
break;
|
||||
|
||||
case @"Tags":
|
||||
beatmap.BeatmapInfo.Metadata.Tags = pair.Value;
|
||||
metadata.Tags = pair.Value;
|
||||
break;
|
||||
|
||||
case @"BeatmapID":
|
||||
|
@ -300,13 +300,13 @@ private void handleEvent(string line)
|
|||
switch (type)
|
||||
{
|
||||
case LegacyEventType.Background:
|
||||
string bgFilename = split[2].Trim('"');
|
||||
beatmap.BeatmapInfo.Metadata.BackgroundFile = bgFilename.ToStandardisedPath();
|
||||
string bgFilename = split[2];
|
||||
beatmap.BeatmapInfo.Metadata.BackgroundFile = CleanFilename(bgFilename); ;
|
||||
break;
|
||||
|
||||
case LegacyEventType.Video:
|
||||
string videoFilename = split[2].Trim('"');
|
||||
beatmap.BeatmapInfo.Metadata.VideoFile = videoFilename.ToStandardisedPath();
|
||||
string videoFilename = split[2];
|
||||
beatmap.BeatmapInfo.Metadata.VideoFile = CleanFilename(videoFilename);
|
||||
break;
|
||||
|
||||
case LegacyEventType.Break:
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using osu.Framework.Extensions;
|
||||
using osu.Framework.Logging;
|
||||
using osu.Game.Audio;
|
||||
using osu.Game.Beatmaps.ControlPoints;
|
||||
|
@ -115,7 +116,7 @@ private void handleColours(T output, string line)
|
|||
|
||||
protected KeyValuePair<string, string> SplitKeyVal(string line, char separator = ':')
|
||||
{
|
||||
var split = line.Trim().Split(new[] { separator }, 2);
|
||||
var split = line.Split(separator, 2);
|
||||
|
||||
return new KeyValuePair<string, string>
|
||||
(
|
||||
|
@ -124,6 +125,8 @@ protected KeyValuePair<string, string> SplitKeyVal(string line, char separator =
|
|||
);
|
||||
}
|
||||
|
||||
protected string CleanFilename(string path) => path.Trim('"').ToStandardisedPath();
|
||||
|
||||
protected enum Section
|
||||
{
|
||||
None,
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
using System.IO;
|
||||
using osuTK;
|
||||
using osuTK.Graphics;
|
||||
using osu.Framework.Extensions;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Game.IO;
|
||||
using osu.Game.Storyboards;
|
||||
|
@ -65,12 +64,14 @@ protected override void ParseLine(Storyboard storyboard, Section section, string
|
|||
private void handleEvents(string line)
|
||||
{
|
||||
var depth = 0;
|
||||
var lineSpan = line.AsSpan();
|
||||
|
||||
while (line.StartsWith(" ", StringComparison.Ordinal) || line.StartsWith("_", StringComparison.Ordinal))
|
||||
while (lineSpan.StartsWith(" ", StringComparison.Ordinal) || lineSpan.StartsWith("_", StringComparison.Ordinal))
|
||||
{
|
||||
lineSpan = lineSpan.Slice(1);
|
||||
++depth;
|
||||
line = line.Substring(1);
|
||||
}
|
||||
line = line.Substring(depth);
|
||||
|
||||
decodeVariables(ref line);
|
||||
|
||||
|
@ -89,7 +90,7 @@ private void handleEvents(string line)
|
|||
{
|
||||
var layer = parseLayer(split[1]);
|
||||
var origin = parseOrigin(split[2]);
|
||||
var path = cleanFilename(split[3]);
|
||||
var path = CleanFilename(split[3]);
|
||||
var x = float.Parse(split[4], NumberFormatInfo.InvariantInfo);
|
||||
var y = float.Parse(split[5], NumberFormatInfo.InvariantInfo);
|
||||
storyboardSprite = new StoryboardSprite(path, origin, new Vector2(x, y));
|
||||
|
@ -101,7 +102,7 @@ private void handleEvents(string line)
|
|||
{
|
||||
var layer = parseLayer(split[1]);
|
||||
var origin = parseOrigin(split[2]);
|
||||
var path = cleanFilename(split[3]);
|
||||
var path = CleanFilename(split[3]);
|
||||
var x = float.Parse(split[4], NumberFormatInfo.InvariantInfo);
|
||||
var y = float.Parse(split[5], NumberFormatInfo.InvariantInfo);
|
||||
var frameCount = int.Parse(split[6]);
|
||||
|
@ -116,7 +117,7 @@ private void handleEvents(string line)
|
|||
{
|
||||
var time = double.Parse(split[1], CultureInfo.InvariantCulture);
|
||||
var layer = parseLayer(split[2]);
|
||||
var path = cleanFilename(split[3]);
|
||||
var path = CleanFilename(split[3]);
|
||||
var volume = split.Length > 4 ? float.Parse(split[4], CultureInfo.InvariantCulture) : 100;
|
||||
storyboard.GetLayer(layer).Add(new StoryboardSampleInfo(path, time, (int)volume));
|
||||
break;
|
||||
|
@ -332,6 +333,5 @@ private void decodeVariables(ref string line)
|
|||
}
|
||||
}
|
||||
|
||||
private string cleanFilename(string path) => path.Trim('"').ToStandardisedPath();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue