@@ -220,8 +220,7 @@ class Chart {
220220 */
221221 #if REGION
222222 var extraEvents : Array <ChartEvent > = loadEventsJson (songName );
223- if (extraEvents != null )
224- base .events = base .events .concat (extraEvents );
223+ if (extraEvents != null ) base .events = base .events .concat (extraEvents );
225224 #end
226225
227226 /**
@@ -262,16 +261,17 @@ class Chart {
262261 var filteredChart = filterChartForSaving (chart , saveSettings .saveMetaInChart , saveSettings .saveLocalEvents , saveSettings .saveGlobalEvents && saveSettings .seperateGlobalEvents != true );
263262
264263 #if sys
265- var prefix = ' assets/songs/' , assetsRoot = Paths .getAssetsRoot () + ' /' ;
266- var songPath = saveSettings .songFolder == null ? ' ${chart .meta .name }' : saveSettings .songFolder , prettyPrint = saveSettings .prettyPrint == true ? Flags .JSON_PRETTY_PRINT : null ;
267- var metaPath = ' $songPath /meta.json' , temp : String ;
268- if ((temp = Paths .assetsTree .getPath (prefix + metaPath )) != null ) metaPath = temp ;
269- else metaPath = assetsRoot + metaPath ;
264+ var songPath = saveSettings .songFolder == null ? ' assets/songs/ ${chart .meta .name }' : saveSettings .songFolder ;
265+ var metaPath = ' meta.json' , prettyPrint = saveSettings .prettyPrint == true ? Flags .JSON_PRETTY_PRINT : null , temp : String ;
266+ if ((temp = Paths .assetsTree .getPath (' $songPath / $metaPath ' )) != null ) {
267+ songPath = temp .substr (0 , temp .length - metaPath .length - 1 );
268+ metaPath = temp ;
269+ }
270+ else if (saveSettings .songFolder == null )
271+ metaPath = (songPath = ' ${Paths .getAssetsRoot ()}/ $songPath ' ) + ' / $metaPath ' ;
270272
271273 var chartFolder = saveSettings .folder == null ? ((variant == null || variant == ' ' ) ? ' charts' : ' charts/ $variant ' ) : saveSettings .folder ;
272274 var chartPath = ' $songPath / $chartFolder / ${difficulty .trim ()}.json' ;
273- if ((temp = Paths .assetsTree .getPath (prefix + chartPath )) != null ) chartPath = temp ;
274- else chartPath = assetsRoot + chartPath ;
275275
276276 if (saveSettings .saveChart == null || saveSettings .saveChart == true )
277277 CoolUtil .safeSaveFile (chartPath , Json .stringify (filteredChart , null , prettyPrint ));
@@ -280,11 +280,10 @@ class Chart {
280280 CoolUtil .safeSaveFile (metaPath , Json .stringify (filterMetaForSaving (chart .meta ), null , prettyPrint ));
281281
282282 if (saveSettings .seperateGlobalEvents == true ) {
283- var eventsPath = ' $songPath /events.json' ;
284- if ((temp = Paths .assetsTree .getPath (prefix + eventsPath )) != null ) eventsPath = temp ;
285- else eventsPath = assetsRoot + eventsPath ;
283+ var eventsPath = ' $songPath /events.json' , events = filterEventsForSaving (chart .events , false , true );
286284
287- CoolUtil .safeSaveFile (eventsPath , Json .stringify ({events : filterEventsForSaving (chart .events , false , true )}, null , prettyPrint ));
285+ if (events .length != 0 ) CoolUtil .safeSaveFile (eventsPath , Json .stringify ({events : events }, null , prettyPrint ));
286+ else if (FileSystem .exists (eventsPath )) FileSystem .deleteFile (eventsPath );
288287 }
289288 #end
290289
@@ -335,6 +334,10 @@ class Chart {
335334 if (data .color != null ) data .color = FlxColor .fromInt (data .color ).toWebString (); // dont even ask me - Nex
336335 Reflect .deleteField (data , ' parsedColor' );
337336 Reflect .deleteField (data , ' metas' );
337+ Reflect .deleteField (data , " variant" );
338+ if (data .instSuffix != null && data .instSuffix == " " ) Reflect .deleteField (data , " instSuffix" );
339+ if (data .vocalsSuffix != null && data .vocalsSuffix == " " ) Reflect .deleteField (data , " vocalsSuffix" );
340+ if (data .variants != null && data .variants .length == 0 ) Reflect .deleteField (data , " variants" );
338341 return data ;
339342 }
340343}
0 commit comments