Fix VSliceParser crash
This commit is contained in:
@@ -98,6 +98,7 @@ class Chart {
|
||||
data.setFieldDefault("needsVoices", true);
|
||||
data.setFieldDefault("difficulties", []);
|
||||
data.setFieldDefault("variants", []);
|
||||
data.setFieldDefault("metas", []);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ class VSliceParser {
|
||||
result.stepsPerBeat = firstTimeChange.d.getDefault(Flags.DEFAULT_STEPS_PER_BEAT);
|
||||
result.displayName = songName;
|
||||
result.difficulties = data.playData.difficulties.copy();
|
||||
result.variants = data.playData.songVariations.copy();
|
||||
if (data.playData.songVariations != null) result.variants = data.playData.songVariations.copy();
|
||||
|
||||
if (result.customValues == null) result.customValues = {};
|
||||
result.customValues.artist = data.artist;
|
||||
|
||||
@@ -41,7 +41,7 @@ class CharterSelectionScreen extends EditorTreeMenuScreen {
|
||||
|
||||
for (d in s.difficulties) if (d != '') screen.add(makeChartOption(d, isVariant ? s.variant : null, s.name));
|
||||
screen.add(new Separator());
|
||||
if (s.variants != null && s.metas != null) for (v in s.variants) if (s.metas.get(v) != null) screen.add(makeVariationOption(s.metas.get(v)));
|
||||
for (v in s.variants) if (s.metas.get(v) != null) screen.add(makeVariationOption(s.metas.get(v)));
|
||||
|
||||
#if sys
|
||||
screen.insert(0, new NewOption(getID('newDifficulty'), getID('newDifficultyDesc'), () -> {
|
||||
@@ -90,7 +90,7 @@ class CharterSelectionScreen extends EditorTreeMenuScreen {
|
||||
return;
|
||||
}
|
||||
|
||||
var songFolder:String = '${Paths.getAssetsRoot()}/songs/${creation.meta.name}';
|
||||
var songFolder:String = '${Paths.getAssetsRoot()}/songs/${variant != null && curSong != null ? curSong.name : creation.meta.name}';
|
||||
|
||||
#if sys
|
||||
// Make Directories
|
||||
@@ -114,6 +114,7 @@ class CharterSelectionScreen extends EditorTreeMenuScreen {
|
||||
if (variant != null && curSong != null) {
|
||||
if (curSong.variants == null) curSong.variants = [];
|
||||
if (!curSong.variants.contains(variant)) curSong.variants.push(variant);
|
||||
|
||||
curSong.metas.set(variant, creation.meta);
|
||||
|
||||
parent.tree.last().add(makeVariationOption(creation.meta));
|
||||
|
||||
@@ -245,7 +245,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
var pages = isImporting ? importPages : pages;
|
||||
if (curPage == pages.length-1) {
|
||||
saveSongInfo();
|
||||
close();
|
||||
if (subState == null) close();
|
||||
} else {
|
||||
curPage++;
|
||||
refreshPages();
|
||||
@@ -415,6 +415,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
#end
|
||||
});
|
||||
} catch (e:haxe.Exception) {
|
||||
trace(e.stack, e.message);
|
||||
openSubState(new UIWarningSubstate("Importing Song/Charts: Error!", e.details(), [
|
||||
{label: "Ok", color: 0xFFFF0000, onClick: function(t) {}}
|
||||
]));
|
||||
@@ -464,6 +465,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
playerVocals: files.get('Voices-${playData.characters.playerVocals != null ? playData.characters.playerVocals[0] : playData.characters.player}.${Flags.SOUND_EXT}'),
|
||||
oppVocals: files.get('Voices-${playData.characters.opponentVocals != null ? playData.characters.opponentVocals[0] : playData.characters.opponent}.${Flags.SOUND_EXT}'),
|
||||
}, (songFolder:String) -> {
|
||||
trace(songFolder);
|
||||
#if sys
|
||||
for (diff in diffCharts) CoolUtil.safeSaveFile('$songFolder/${getChartSavePath(meta, diff.diffName)}', Json.stringify(diff.chart, Flags.JSON_PRETTY_PRINT));
|
||||
if (events != null) CoolUtil.safeSaveFile('$songFolder/events${meta.variant != null && meta.variant != "" ? "-" + meta.variant : ""}.json', Json.stringify({events: events}, Flags.JSON_PRETTY_PRINT));
|
||||
|
||||
@@ -20,7 +20,7 @@ class VariationCreationScreen extends SongCreationScreen {
|
||||
cast(songNameTextBox.members[songNameTextBox.members.length - 1], UIText).text = translateMeta("variation");
|
||||
|
||||
cast(importIdTextBox.members[importIdTextBox.members.length - 1], UIText).applyMarkup(
|
||||
translate("variation"),
|
||||
translateMeta("variation"),
|
||||
[new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFAD1212), "$")]
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user