@@ -83,6 +83,24 @@ class Chart {
8383 return data ;
8484 }
8585
86+ inline public static function defaultChartMetaFields (data : ChartMetaData ): ChartMetaData {
87+ data .setFieldDefault (" displayName" , data .name );
88+
89+ data .setFieldDefault (" bpm" , Flags .DEFAULT_BPM );
90+ data .setFieldDefault (" beatsPerMeasure" , Flags .DEFAULT_BEATS_PER_MEASURE );
91+ data .setFieldDefault (" stepsPerBeat" , Flags .DEFAULT_STEPS_PER_BEAT );
92+ data .setFieldDefault (" icon" , Flags .DEFAULT_HEALTH_ICON );
93+ data .setFieldDefault (" coopAllowed" , Flags .DEFAULT_COOP_ALLOWED );
94+ data .setFieldDefault (" opponentModeAllowed" , Flags .DEFAULT_OPPONENT_MODE_ALLOWED );
95+ data .setFieldDefault (" instSuffix" , " " );
96+ data .setFieldDefault (" vocalsSuffix" , " " );
97+ data .setFieldDefault (" needsVoices" , true );
98+ data .setFieldDefault (" difficulties" , []);
99+ data .setFieldDefault (" variants" , []);
100+
101+ return data ;
102+ }
103+
86104 public static function loadChartMeta (songName : String , ? variant : String , fromMods : Bool = true , includeMetaVariations = true ): ChartMetaData {
87105 var defaultPath = Paths .file (' songs/ $songName /meta.json' ), isVariant = false ;
88106 var data : ChartMetaData = null , paths = (variant == null || variant == ' ' ) ? [defaultPath ] : [Paths .file (' songs/ $songName /meta- $variant .json' ), defaultPath ];
@@ -109,19 +127,7 @@ class Chart {
109127 if (isVariant ) data .variant = variant ;
110128 else data .variant = null ;
111129
112- data .setFieldDefault (" displayName" , data .name );
113-
114- data .setFieldDefault (" bpm" , Flags .DEFAULT_BPM );
115- data .setFieldDefault (" beatsPerMeasure" , Flags .DEFAULT_BEATS_PER_MEASURE );
116- data .setFieldDefault (" stepsPerBeat" , Flags .DEFAULT_STEPS_PER_BEAT );
117- data .setFieldDefault (" icon" , Flags .DEFAULT_HEALTH_ICON );
118- data .setFieldDefault (" coopAllowed" , Flags .DEFAULT_COOP_ALLOWED );
119- data .setFieldDefault (" opponentModeAllowed" , Flags .DEFAULT_OPPONENT_MODE_ALLOWED );
120- data .setFieldDefault (" instSuffix" , " " );
121- data .setFieldDefault (" vocalsSuffix" , " " );
122- data .setFieldDefault (" needsVoices" , true );
123- data .setFieldDefault (" difficulties" , []);
124- data .setFieldDefault (" variants" , []);
130+ defaultChartMetaFields (data );
125131
126132 if (data .difficulties .length <= 0 ) {
127133 var path = ' songs/ $songName /charts/' ;
@@ -283,7 +289,6 @@ class Chart {
283289 var eventsPath = ' $songPath /events.json' , events = filterEventsForSaving (chart .events , false , true );
284290
285291 if (events .length != 0 ) CoolUtil .safeSaveFile (eventsPath , Json .stringify ({events : events }, null , prettyPrint ));
286- else if (FileSystem .exists (eventsPath )) FileSystem .deleteFile (eventsPath );
287292 }
288293 #end
289294
@@ -332,6 +337,7 @@ class Chart {
332337 public static inline function filterMetaForSaving (meta : ChartMetaData ): ChartMetaData {
333338 var data : Dynamic = Reflect .copy (meta );
334339 if (data .color != null ) data .color = FlxColor .fromInt (data .color ).toWebString (); // dont even ask me - Nex
340+ Reflect .deleteField (data , " name" );
335341 Reflect .deleteField (data , ' parsedColor' );
336342 Reflect .deleteField (data , ' metas' );
337343 Reflect .deleteField (data , " variant" );
0 commit comments