@@ -62,6 +62,8 @@ class OsuFreeplayState extends MusicBeatState
6262 var visual : AudioDisplay ;
6363 var vocalvisual : AudioDisplay = null ;
6464 var oppvisual : AudioDisplay = null ;
65+
66+ public var fpManager : FreeplayManager ;
6567 override function create ()
6668 {
6769 #if windows
@@ -71,6 +73,8 @@ class OsuFreeplayState extends MusicBeatState
7173
7274 instance = this ; // For Archipelago
7375
76+ fpManager = FreeplayManager .loadFPManager ();
77+
7478 // Check if the Victory Song is cleared.
7579 {
7680 APFreeplayManager .checkVictory ();
@@ -123,7 +127,7 @@ class OsuFreeplayState extends MusicBeatState
123127 iconGrp = new FlxTypedGroup <HealthIcon >();
124128 add (iconGrp );
125129
126- FreeplayState . instance . fpManager .reloadFreeplay (true );
130+ fpManager .reloadFreeplay (true );
127131
128132 if (WeekData .weeksList .length < 1 )
129133 {
@@ -292,25 +296,25 @@ class OsuFreeplayState extends MusicBeatState
292296 if (APEntryState .inArchipelagoMode ) {
293297 victoryColor = FlxColor .fromHSL (((e / 2 ) / 300 * 360 ) % 360 , 1.0 , 0.5 * 1.0 );
294298
295- for (i in 0 ... FreeplayState . instance . fpManager .songList .length ) {
296- if (APFreeplayManager .isVictorySong (FreeplayState . instance . fpManager .songList [i ].songName , FreeplayState . instance . fpManager .songList [i ].folder )) {
299+ for (i in 0 ... fpManager .songList .length ) {
300+ if (APFreeplayManager .isVictorySong (fpManager .songList [i ].songName , fpManager .songList [i ].folder )) {
297301 songBox .members [i ].color = victoryColor ;
298302 }
299303 }
300304
301305 if (FlxG .keys .justPressed .L && APEntryState .inArchipelagoMode && ! isTyping ) {
302306 try { // Because this menu has no actual difficulty select, just assume it's the first difficulty
303- var songLowercase : String = Paths .formatToSongPath (FreeplayState . instance . fpManager .songList [curSelected ].songName );
307+ var songLowercase : String = Paths .formatToSongPath (fpManager .songList [curSelected ].songName );
304308 var poop : String = Highscore .formatSong (songLowercase , 0 );
305- Mods .currentModDirectory = FreeplayState . instance . fpManager .songList [curSelected ].folder ;
309+ Mods .currentModDirectory = fpManager .songList [curSelected ].folder ;
306310 Song .loadFromJson (poop , songLowercase );
307311 PlayState .isStoryMode = false ;
308312 PlayState .storyDifficulty = 0 ;
309313 } catch (e : Dynamic ) {
310314 trace (' Error loading song: ' + e );
311315 }
312316 try {
313- APFreeplayManager .forceUnlockCheck (FreeplayState . instance . fpManager .songList [curSelected ].songName , WeekData .getCurrentWeek ().folder );
317+ APFreeplayManager .forceUnlockCheck (fpManager .songList [curSelected ].songName , WeekData .getCurrentWeek ().folder );
314318 } catch (e : Dynamic ) {
315319 trace (" You can't check nothing, silly!" );
316320 }
@@ -319,7 +323,7 @@ class OsuFreeplayState extends MusicBeatState
319323
320324 if (FlxG .keys .justPressed .H && APEntryState .inArchipelagoMode && ! isTyping ) {
321325 try {
322- var SongInfo = APEntryState .apGame .getSongAndMod (FreeplayState . instance . fpManager .songList [curSelected ].songName + (FreeplayState . instance . fpManager .songList [curSelected ].folder != " " ? " (" + FreeplayState . instance . fpManager .songList [curSelected ].folder + " )" : " " ));
326+ var SongInfo = APEntryState .apGame .getSongAndMod (fpManager .songList [curSelected ].songName + (fpManager .songList [curSelected ].folder != " " ? " (" + fpManager .songList [curSelected ].folder + " )" : " " ));
323327 if (APEntryState .ap != null ) {
324328 APEntryState .ap .Say (" !hint " + SongInfo .song + ((SongInfo .mod != " " && SongInfo .mod != null ) ? " (" + SongInfo .mod + " )" : " " ));
325329 archipelago.console. SideUI .instance .active = true ;
@@ -428,10 +432,10 @@ class OsuFreeplayState extends MusicBeatState
428432
429433 if (controls. ACCEPT )
430434 {
431- var vicCheck : Bool = APFreeplayManager .isVictorySong (FreeplayState . instance . fpManager .songList [curSelected ].songName , FreeplayState . instance . fpManager .songList [curSelected ].folder ) && APInfo .ticketCount >= APInfo .ticketWinCount ;
435+ var vicCheck : Bool = APFreeplayManager .isVictorySong (fpManager .songList [curSelected ].songName , fpManager .songList [curSelected ].folder ) && APInfo .ticketCount >= APInfo .ticketWinCount ;
432436 // You need the song AND the tickets.
433437 trace (' can play victory song: ${vicCheck }' );
434- if (APFreeplayManager .isVictorySong (FreeplayState . instance . fpManager .songList [curSelected ].songName , FreeplayState . instance . fpManager .songList [curSelected ].folder ) && ! vicCheck ) {
438+ if (APFreeplayManager .isVictorySong (fpManager .songList [curSelected ].songName , fpManager .songList [curSelected ].folder ) && ! vicCheck ) {
435439 FlxG .camera .shake (0.005 , 0.5 );
436440 FlxG .sound .play (Paths .sound (" badnoise" + FlxG .random .int (1 ,3 )), 1 );
437441 var ogColor = songBox .members [curSelected ].color ;
@@ -443,7 +447,7 @@ class OsuFreeplayState extends MusicBeatState
443447 return ;
444448 }
445449
446- if (APFreeplayManager .trueMissing .contains (FreeplayState . instance . fpManager .songList [curSelected ].songName ) && ! APFreeplayManager .unplayedList .contains (FreeplayState . instance . fpManager .songList [curSelected ].songName )) {
450+ if (APFreeplayManager .trueMissing .contains (fpManager .songList [curSelected ].songName ) && ! APFreeplayManager .unplayedList .contains (fpManager .songList [curSelected ].songName )) {
447451 FlxG .camera .shake (0.005 , 0.5 );
448452 FlxG .sound .play (Paths .sound (" badnoise" + FlxG .random .int (1 ,3 )), 1 );
449453 var ogColor = songBox .members [curSelected ].color ;
@@ -456,7 +460,7 @@ class OsuFreeplayState extends MusicBeatState
456460
457461 // reloadSongArray();
458462 inSub = true ;
459- openSubState (new DifficultySelectorSubState (FreeplayState . instance . fpManager .songList [curSelected ]));
463+ openSubState (new DifficultySelectorSubState (fpManager .songList [curSelected ]));
460464 }
461465
462466 if (FlxG .keys .justPressed .TAB || FlxG .keys .justPressed .CONTROL ) // adding control for consistancy sake
@@ -496,11 +500,11 @@ class OsuFreeplayState extends MusicBeatState
496500 isTyping = false ;
497501 if (searchTypeText .text == ' ' ) {
498502 searchTypeText .text = ' Type Here To Search!' ;
499- FreeplayState . instance . fpManager .reloadFreeplay (true );
503+ fpManager .reloadFreeplay (true );
500504 trace (" Regual Refr" );
501505 }
502506 else
503- FreeplayState . instance . fpManager .reloadFreeplay (false , searchTypeText .text );
507+ fpManager .reloadFreeplay (false , searchTypeText .text );
504508 }
505509 }
506510
@@ -550,13 +554,13 @@ class OsuFreeplayState extends MusicBeatState
550554 for (item in songBox )
551555 item .posY = i ++ - curSelected ;
552556
553- if (FreeplayState . instance . fpManager .songList [curSelected ] != null )
557+ if (fpManager .songList [curSelected ] != null )
554558 {
555559 WeekData .setDirectoryFromWeek ();
556- Mods .currentModDirectory = FreeplayState . instance . fpManager .songList [curSelected ].folder ;
557- PlayState .storyWeek = FreeplayState . instance . fpManager .songList [curSelected ].week ;
560+ Mods .currentModDirectory = fpManager .songList [curSelected ].folder ;
561+ PlayState .storyWeek = fpManager .songList [curSelected ].week ;
558562 try {
559- switch (FreeplayState . instance . fpManager .songList [curSelected ].songName )
563+ switch (fpManager .songList [curSelected ].songName )
560564 {
561565 case ' Small Argument' | ' Beat Battle 2' :
562566 Difficulty .list = [' Hard' ];
@@ -566,7 +570,7 @@ class OsuFreeplayState extends MusicBeatState
566570 Difficulty .loadFromWeek ();
567571 }
568572 } catch (e : Dynamic ) {}
569- try {metadata = FreeplayState . instance . fpManager .metadata .get (FreeplayState . instance . fpManager .songList [curSelected ].songName .toLowerCase ());}
573+ try {metadata = fpManager .metadata .get (fpManager .songList [curSelected ].songName .toLowerCase ());}
570574 catch (e ) {metadata = null ;}
571575
572576 if (metadata != null && metadata .freeplay != null ) {
@@ -627,7 +631,7 @@ class OsuFreeplayState extends MusicBeatState
627631 }
628632
629633 function loadDiffs (song : Dynamic ) {
630- var week : WeekData = WeekData .weeksLoaded .get (WeekData .weeksList [FreeplayState . instance . fpManager .songList [curSelected ].week ]);
634+ var week : WeekData = WeekData .weeksLoaded .get (WeekData .weeksList [fpManager .songList [curSelected ].week ]);
631635 Difficulty .loadFromWeek (week );
632636
633637 var diffInt : Int = 0 ;
@@ -636,7 +640,7 @@ class OsuFreeplayState extends MusicBeatState
636640 var songBox : SongBox = new SongBox (320 , 100 );
637641 songBox .loadGraphic (Paths .image (' freeplay/OSUState/bars/background2' ));
638642 songBox .setGraphicSize (650 , 50 );
639- songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , FreeplayState . instance . fpManager .songList [curSelected ].color [0 ][0 ], FreeplayState . instance . fpManager .songList [curSelected ].color [0 ][1 ], FreeplayState . instance . fpManager .songList [curSelected ].color [0 ][2 ], 1 );
643+ songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , fpManager .songList [curSelected ].color [0 ][0 ], fpManager .songList [curSelected ].color [0 ][1 ], fpManager .songList [curSelected ].color [0 ][2 ], 1 );
640644 songBox. ID = song. ID + diffInt ;
641645 this .songBox .add (songBox );
642646
@@ -664,7 +668,7 @@ class OsuFreeplayState extends MusicBeatState
664668
665669 APFreeplayManager .checkSongStatus ();
666670
667- for (i in 0 ... FreeplayState . instance . fpManager .songList .length )
671+ for (i in 0 ... fpManager .songList .length )
668672 {
669673 var songName : String = ' ' ;
670674 var modName : String = ' ' ;
@@ -674,14 +678,14 @@ class OsuFreeplayState extends MusicBeatState
674678 var someLocationsNotMissing : Bool = false ;
675679
676680 if (APEntryState .inArchipelagoMode ) {
677- songName = FreeplayState . instance . fpManager .songList [i ].songName ;
678- modName = FreeplayState . instance . fpManager .songList [i ].folder ;
681+ songName = fpManager .songList [i ].songName ;
682+ modName = fpManager .songList [i ].folder ;
679683 locationId = APEntryState .apGame .locationData (songName , modName ).concat (APEntryState .apGame .noteData (songName , modName ));
680684 isMissing = [for (ID in locationId ) APEntryState .apGame .isLocationMissing (APEntryState .apGame .info ().get_location_name (ID ))].indexOf (true ) != - 1 || locationId .length == 0 ;
681685 color = isMissing ? FlxColor .RED : FlxColor .GREEN ;
682686 }
683687
684- Mods .currentModDirectory = FreeplayState . instance . fpManager .songList [i ].folder ;
688+ Mods .currentModDirectory = fpManager .songList [i ].folder ;
685689
686690 var songBox : SongBox = new SongBox (320 , 100 );
687691 songBox .loadGraphic (Paths .image (' freeplay/OSUState/bars/background2' ));
@@ -698,26 +702,26 @@ class OsuFreeplayState extends MusicBeatState
698702 : songBox .color = 0xFFFFD700 )
699703 : songBox .color = color ;
700704 } else {
701- songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , FreeplayState . instance . fpManager .songList [i ].color [0 ][0 ], FreeplayState . instance . fpManager .songList [i ].color [0 ][1 ], FreeplayState . instance . fpManager .songList [i ].color [0 ][2 ], 1 );
705+ songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , fpManager .songList [i ].color [0 ][0 ], fpManager .songList [i ].color [0 ][1 ], fpManager .songList [i ].color [0 ][2 ], 1 );
702706 }
703707 songBox. ID = i ;
704708 this .songBox .add (songBox );
705709
706710 var isLock : Bool = APEntryState .inArchipelagoMode && CategoryState .loadWeekForce == " all" && isMissing && ! APFreeplayManager .unplayedList .contains (songName );
707- var icon : HealthIcon = new HealthIcon (isLock ? " lock" : FreeplayState . instance . fpManager .songList [i ].songCharacter , false );
711+ var icon : HealthIcon = new HealthIcon (isLock ? " lock" : fpManager .songList [i ].songCharacter , false );
708712 icon .setPosition (320 , 100 );
709713 icon. ID = i ;
710714 icon .setGraphicSize (Std .int (icon .width / 1.7 ), Std .int (icon .height / 1.7 ));
711715 iconGrp .add (icon );
712716
713- try {metadata = FreeplayState . instance . fpManager .metadata .get (FreeplayState . instance . fpManager .songList [i ].songName .toLowerCase ());}
717+ try {metadata = fpManager .metadata .get (fpManager .songList [i ].songName .toLowerCase ());}
714718 catch (e ) {metadata = null ;}
715719
716720 var text : FlxText = new FlxText (0 , 0 , 500 , ' ' , 20 );
717721 if (metadata != null )
718- text .text = FreeplayState . instance . fpManager .songList [i ].songName + ' \n By ${metadata .song .artist }' ;
722+ text .text = fpManager .songList [i ].songName + ' \n By ${metadata .song .artist }' ;
719723 else
720- text .text = FreeplayState . instance . fpManager .songList [i ].songName + ' \n By Unknown' ;
724+ text .text = fpManager .songList [i ].songName + ' \n By Unknown' ;
721725 text .alignment = ' left' ;
722726 text. ID = i ;
723727 textGrp .add (text );
@@ -740,7 +744,7 @@ class OsuFreeplayState extends MusicBeatState
740744 if (APEntryState .inArchipelagoMode )
741745 APFreeplayManager .checkSongStatus ();
742746
743- for (i in 0 ... FreeplayState . instance . fpManager .songList .length )
747+ for (i in 0 ... fpManager .songList .length )
744748 {
745749 var songName : String = ' ' ;
746750 var modName : String = ' ' ;
@@ -750,14 +754,14 @@ class OsuFreeplayState extends MusicBeatState
750754 var someLocationsNotMissing : Bool = false ;
751755
752756 if (APEntryState .inArchipelagoMode ) {
753- songName = FreeplayState . instance . fpManager .songList [i ].songName ;
754- modName = FreeplayState . instance . fpManager .songList [i ].folder ;
757+ songName = fpManager .songList [i ].songName ;
758+ modName = fpManager .songList [i ].folder ;
755759 locationId = APEntryState .apGame .locationData (songName , modName ).concat (APEntryState .apGame .noteData (songName , modName ));
756760 isMissing = [for (ID in locationId ) APEntryState .apGame .isLocationMissing (APEntryState .apGame .info ().get_location_name (ID ))].indexOf (true ) != - 1 || locationId .length == 0 ;
757761 color = isMissing ? FlxColor .RED : FlxColor .GREEN ;
758762 }
759763
760- Mods .currentModDirectory = FreeplayState . instance . fpManager .songList [i ].folder ;
764+ Mods .currentModDirectory = fpManager .songList [i ].folder ;
761765
762766 var songBox : SongBox = new SongBox (320 , 100 );
763767 songBox .loadGraphic (Paths .image (' freeplay/OSUState/bars/background2' ));
@@ -774,34 +778,34 @@ class OsuFreeplayState extends MusicBeatState
774778 : songBox .color = 0xFFFFD700 )
775779 : songBox .color = color ;
776780 } else {
777- songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , FreeplayState . instance . fpManager .songList [i ].color [0 ][0 ], FreeplayState . instance . fpManager .songList [i ].color [0 ][1 ], FreeplayState . instance . fpManager .songList [i ].color [0 ][2 ], 1 );
781+ songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , fpManager .songList [i ].color [0 ][0 ], fpManager .songList [i ].color [0 ][1 ], fpManager .songList [i ].color [0 ][2 ], 1 );
778782 }
779783 songBox. ID = i + trueInt ;
780784 this .songBox .add (songBox );
781785
782786 var isLock : Bool = APEntryState .inArchipelagoMode && CategoryState .loadWeekForce == " all" && isMissing && ! APFreeplayManager .unplayedList .contains (songName );
783- var icon : HealthIcon = new HealthIcon (isLock ? " lock" : FreeplayState . instance . fpManager .songList [i ].songCharacter , false );
787+ var icon : HealthIcon = new HealthIcon (isLock ? " lock" : fpManager .songList [i ].songCharacter , false );
784788 icon .setPosition (320 , 100 );
785789 icon. ID = i + trueInt ;
786790 icon .setGraphicSize (Std .int (icon .width / 1.7 ), Std .int (icon .height / 1.7 ));
787791 iconGrp .add (icon );
788792
789- try {metadata = FreeplayState . instance . fpManager .metadata .get (FreeplayState . instance . fpManager .songList [i ].songName .toLowerCase ());}
793+ try {metadata = fpManager .metadata .get (fpManager .songList [i ].songName .toLowerCase ());}
790794 catch (e ) {metadata = null ;}
791795
792796 var text : FlxText = new FlxText (0 , 0 , 500 , ' ' , 20 );
793797 if (metadata != null )
794- text .text = FreeplayState . instance . fpManager .songList [i ].songName + ' \n By ${metadata .song .artist }' ;
798+ text .text = fpManager .songList [i ].songName + ' \n By ${metadata .song .artist }' ;
795799 else
796- text .text = FreeplayState . instance . fpManager .songList [i ].songName + ' \n By Unknown' ;
800+ text .text = fpManager .songList [i ].songName + ' \n By Unknown' ;
797801 text .alignment = ' left' ;
798802 text. ID = i + trueInt ;
799803 textGrp .add (text );
800804
801- var week : WeekData = WeekData .weeksLoaded .get (WeekData .weeksList [FreeplayState . instance . fpManager .songList [i ].week ]);
805+ var week : WeekData = WeekData .weeksLoaded .get (WeekData .weeksList [fpManager .songList [i ].week ]);
802806 Difficulty .loadFromWeek (week );
803807
804- if (FreeplayState . instance . fpManager .songList [i ].songName == FreeplayState . instance . fpManager .songList [curSelected ].songName ) {
808+ if (fpManager .songList [i ].songName == fpManager .songList [curSelected ].songName ) {
805809 trace (songName );
806810 trueInt = i + 1 ;
807811 for (j in 0 ... Difficulty .list .length )
@@ -810,21 +814,21 @@ class OsuFreeplayState extends MusicBeatState
810814 var songBox : SongBox = new SongBox (320 , 100 );
811815 songBox .loadGraphic (Paths .image (' freeplay/OSUState/bars/background2' ));
812816 songBox .setGraphicSize (650 , 100 );
813- songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , FreeplayState . instance . fpManager .songList [i ].color [0 ][0 ], FreeplayState . instance . fpManager .songList [i ].color [0 ][1 ], FreeplayState . instance . fpManager .songList [i ].color [0 ][2 ], 1 );
817+ songBox .setColorTransform (- 1 , - 1 , - 1 , 1 , fpManager .songList [i ].color [0 ][0 ], fpManager .songList [i ].color [0 ][1 ], fpManager .songList [i ].color [0 ][2 ], 1 );
814818 songBox. ID = trueInt ;
815819 this .songBox .add (songBox );
816820
817- var icon : HealthIcon = new HealthIcon (FreeplayState . instance . fpManager .songList [i ].songCharacter , false );
821+ var icon : HealthIcon = new HealthIcon (fpManager .songList [i ].songCharacter , false );
818822 icon .setPosition (320 , 100 );
819823 icon. ID = trueInt ;
820824 icon .setGraphicSize (Std .int (icon .width / 1.7 ), Std .int (icon .height / 1.7 ));
821825 this .iconGrp .add (icon );
822826
823- try {metadata = FreeplayState . instance . fpManager .metadata .get (FreeplayState . instance . fpManager .songList [i ].songName .toLowerCase ());}
827+ try {metadata = fpManager .metadata .get (fpManager .songList [i ].songName .toLowerCase ());}
824828 catch (e ) {metadata = null ;}
825829
826830 var text : FlxText = new FlxText (0 , 0 , 500 , ' ' , 20 );
827- text .text = FreeplayState . instance . fpManager .songList [i ].songName + ' \n ' + Difficulty .list [j ];
831+ text .text = fpManager .songList [i ].songName + ' \n ' + Difficulty .list [j ];
828832 text .alignment = ' left' ;
829833 text. ID = trueInt ;
830834 this .textGrp .add (text );
0 commit comments