@@ -83,7 +83,7 @@ class CharterSelectionScreen extends EditorTreeMenuScreen {
8383 #if sys
8484 public function saveSong (creation : SongCreationData , ? callback : String -> Void ) {
8585 var variant = creation .meta .variant != null && creation .meta .variant != " " ? creation .meta .variant : null ;
86- if (songList . contains ( creation . meta . name . toLowerCase ()) || ( variant != null && curSong != null && curSong .variants . contains (variant ))) {
86+ if (variant != null && curSong != null ? curSong .metas . exists (variant ) : songList . contains ( creation . meta . name . toLowerCase ( ))) {
8787 parent .openSubState (new UIWarningSubstate (TU .translate (" chartCreation.warnings.song-exists-title" ), TU .translate (" chartCreation.warnings.song-exists-body" ), [
8888 {label : TU .translate (" editor.ok" ), color : 0xFFFF0000 , onClick : (t ) -> {}},
8989 ]));
@@ -112,11 +112,14 @@ class CharterSelectionScreen extends EditorTreeMenuScreen {
112112
113113 // Add to List
114114 if (variant != null && curSong != null ) {
115- if (curSong .variants == null ) curSong .variants . push ( variant ) ;
116- curSong .variants .push (variant );
115+ if (curSong .variants == null ) curSong .variants = [] ;
116+ if ( ! curSong . variants . contains ( variant )) curSong .variants .push (variant );
117117 curSong .metas .set (variant , creation .meta );
118118
119119 parent .tree .last ().add (makeVariationOption (creation .meta ));
120+
121+ var metaPath = ' $songFolder /meta ${curSong .variant != null && curSong .variant == " " ? " -" + curSong .variant : " " }.json' ;
122+ CoolUtil .safeSaveFile (metaPath , Chart .makeMetaSaveable (curSong ));
120123 }
121124 else {
122125 freeplayList .songs .insert (0 , creation .meta );
@@ -146,12 +149,8 @@ class CharterSelectionScreen extends EditorTreeMenuScreen {
146149 screen .insert (idx , makeChartOption (name , curSong .variant != null && curSong .variant != " " ? curSong .variant : null , curSong .name ));
147150
148151 // Add to Meta
149- var meta = Json .parse (sys.io. File .getContent (' $songFolder /meta.json' ));
150- if (meta .difficulties == null ) meta .difficulties = [];
151- if (! meta .difficulties .contains (name )) {
152- meta .difficulties .push (name );
153- CoolUtil .safeSaveFile (' $songFolder /meta.json' , Chart .makeMetaSaveable (meta ));
154- }
152+ var metaPath = ' $songFolder /meta ${curSong .variant != null && curSong .variant == " " ? " -" + curSong .variant : " " }.json' ;
153+ CoolUtil .safeSaveFile (metaPath , Chart .makeMetaSaveable (curSong ));
155154 }
156155 #end
157156}
0 commit comments