Skip to content

Commit 9e4b6f3

Browse files
committed
Bring back difficulty metas for now
1 parent fe02ba7 commit 9e4b6f3

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

source/funkin/backend/chart/Chart.hx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,17 @@ class Chart {
102102
return data;
103103
}
104104

105-
public static function loadChartMeta(songName:String, ?variant:String, fromMods:Bool = true, includeMetaVariations = true):ChartMetaData {
106-
var defaultPath = Paths.file('songs/$songName/meta.json'), isVariant = false;
107-
var data:ChartMetaData = null, paths = (variant == null || variant == '') ? [defaultPath] : [Paths.file('songs/$songName/meta-$variant.json'), defaultPath];
108-
for (path in paths) if (Assets.exists(path)) {
105+
public static function loadChartMeta(songName:String, ?variant:String, ?difficulty:String, fromMods:Bool = true, includeMetaVariations = true):ChartMetaData {
106+
var folder = 'songs/$songName', isVariant = false, data:ChartMetaData = null;
107+
var defaultPaths = [Paths.file('$folder/meta-$difficulty.json'), Paths.file('$folder/meta.json')], variantPaths = [];
108+
if (difficulty != null) defaultPaths.unshift(Paths.file('$folder/meta-$difficulty.json'));
109+
110+
if (variant != null && variant != '') {
111+
variantPaths.push(Paths.file('$folder/meta-$variant.json'));
112+
if (difficulty != null) variantPaths.unshift(Paths.file('$folder/meta-$variant-$difficulty.json'));
113+
}
114+
115+
for (path in variantPaths.concat(defaultPaths)) if (Assets.exists(path)) {
109116
fromMods = Paths.assetsTree.existsSpecific(path, "TEXT", MODS);
110117
try {
111118
var tempData = Json.parse(Assets.getText(path));
@@ -114,7 +121,7 @@ class Chart {
114121
} catch(e) Logs.trace('Failed to load song metadata for $songName ($path): ${Std.string(e)}', ERROR);
115122

116123
if (data != null) {
117-
isVariant = path != defaultPath;
124+
isVariant = variantPaths.contains(path);
118125
break;
119126
}
120127
}
@@ -148,8 +155,10 @@ class Chart {
148155

149156
data.metas = [];
150157
if (includeMetaVariations && data.variants.length > 0) for (variant in data.variants) {
151-
if (!data.metas.exists(variant) && Assets.exists(Paths.file('songs/$songName/meta-$variant.json')))
152-
data.metas.set(variant, loadChartMeta(songName, variant, fromMods));
158+
if (!data.metas.exists(variant) && Assets.exists(Paths.file('songs/$songName/meta-$variant.json'))) {
159+
var meta = loadChartMeta(songName, variant, fromMods)
160+
if (meta.variant != null) data.metas.set(variant, meta);
161+
}
153162
}
154163

155164
return data;

0 commit comments

Comments
 (0)