@@ -63,6 +63,14 @@ class APFreeplayManager extends FreeplayManager {
6363 public static var trueMissing : Array <String > = [];
6464 public static var unplayedList : Array <String > = [];
6565 public static var callVictory : Bool = false ;
66+ var apSongData = archipelago. APInfo .apGame ?. getSongsAndModsFromArray (archipelago. APInfo .slotData .selectedSongs ).map (function (songData ): {song :String , mod :String } {
67+ return if (songData .mod == null ) {
68+ {song : songData .song , mod : ' ' }
69+ } else {
70+ {song : songData .song , mod : songData .mod }
71+ };
72+ });
73+
6674 #end
6775
6876 // ///////////////////////////////////////////////////FUNCTIONS///////////////////////////////////////////////////////////////////////////////
@@ -336,18 +344,29 @@ class APFreeplayManager extends FreeplayManager {
336344 if (weekIsLocked (WeekData .weeksList [i ]) && ! APEntryState .inArchipelagoMode ) continue ;
337345 var leWeek : WeekData = WeekData .weeksLoaded .get (WeekData .weeksList [i ]);
338346
347+ var categoryWhaat : Array <String > = Std .isOfType (leWeek .category , String ) ?
348+ (cast leWeek .category : String ).split (' ,' ).map (function (cat : String ): String {
349+ return cat .trim ().toLowerCase ();
350+ }) : Std .isOfType (leWeek .category , Array ) ?
351+ (cast leWeek .category : Array <String >).map (function (cat : String ): String {
352+ return cat .trim ().toLowerCase ();
353+ }) :
354+ [(cast leWeek .category : String )].map (function (cat : String ): String {
355+ return cat .trim ().toLowerCase ();
356+ });
357+
358+
339359 function nullIfEmptyArray <T >(array : Array <T >): Null <Array <T >> {
340360 if (array == null || array .length == 0 ) {
341361 return null ;
342362 }
343363 return array ;
344364 }
345365
346- var apSongData = archipelago. APInfo .apGame ?. getSongsAndModsFromArray (archipelago. APInfo .slotData .selectedSongs );
347366
348367 WeekData .setDirectoryFromWeek (leWeek );
349368 var allowedSongs : Array <Dynamic > = [for (song in leWeek .songs ) {
350- for (songData in apSongData ) {
369+ for (songData in curUnlocked ) {
351370 if (songData .song == song [0 ] && songData .mod == leWeek .folder ) {
352371 song ;
353372 }
@@ -356,16 +375,6 @@ class APFreeplayManager extends FreeplayManager {
356375
357376 for (song in allowedSongs )
358377 {
359- var categoryWhaat : Array <String > = Std .isOfType (leWeek .category , String ) ?
360- (cast leWeek .category : String ).split (' ,' ).map (function (cat : String ): String {
361- return cat .trim ().toLowerCase ();
362- }) : Std .isOfType (leWeek .category , Array ) ?
363- (cast leWeek .category : Array <String >).map (function (cat : String ): String {
364- return cat .trim ().toLowerCase ();
365- }) :
366- [(cast leWeek .category : String )].map (function (cat : String ): String {
367- return cat .trim ().toLowerCase ();
368- });
369378
370379 if (categoryWhaat .length == 1 && categoryWhaat [0 ] == " " || categoryWhaat .length == 0 ) {
371380 categoryWhaat = [];
0 commit comments