Skip to content

Commit 98cf4cf

Browse files
committed
e
1 parent 81bfe4f commit 98cf4cf

File tree

3 files changed

+49
-18
lines changed

3 files changed

+49
-18
lines changed

source/archipelago/APGameState.hx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -905,8 +905,8 @@ class APGameState
905905
var specialItems:Map<String, Int> = new Map<String, Int>();
906906
var apInfo = info();
907907

908-
// trace("FNF Package: " + currentPackages["Friday Night Funkin"]);
909-
// trace("Item Name to ID: " + currentPackages["Friday Night Funkin"].item_name_to_id);
908+
// // trace("FNF Package: " + currentPackages["Friday Night Funkin"]);
909+
// // trace("Item Name to ID: " + currentPackages["Friday Night Funkin"].item_name_to_id);
910910

911911
for (item in currentPackages["Friday Night Funkin"].item_name_to_id.keys())
912912
{
@@ -922,6 +922,7 @@ class APGameState
922922
}
923923
}
924924
trace("Special Items: " + specialItems);
925+
// trace("No more using this for now...");
925926

926927
return specialItems;
927928
}

source/managers/APFreeplayManager.hx

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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 = [];

source/managers/FreeplayManager.hx

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,36 @@ class FreeplayManager {
5252
}
5353

5454
/////////////////////////////////////////////////////FUNCTIONS///////////////////////////////////////////////////////////////////////////////
55-
5655
public static function loadFPManager() {
56+
#if ARCHIPELAGO_ALLOWED
5757
return switch (APEntryState.inArchipelagoMode) {
5858
case true:
59-
new APFreeplayManager();
59+
if (instance != null && Std.isOfType(instance, APFreeplayManager)) {
60+
trace("Using existing APFreeplayManager instance.");
61+
return instance;
62+
} else {
63+
trace("Creating new APFreeplayManager instance.");
64+
return instance = new APFreeplayManager();
65+
}
6066
case false:
61-
new FreeplayManager();
62-
67+
if (instance != null && Std.isOfType(instance, FreeplayManager)) {
68+
trace("Using existing FreeplayManager instance.");
69+
return instance;
70+
} else {
71+
trace("Creating new FreeplayManager instance.");
72+
return instance = new FreeplayManager();
73+
}
74+
}
75+
#else
76+
return switch (instance != null && Std.isOfType(instance, FreeplayManager)) {
77+
case true:
78+
trace("Using existing FreeplayManager instance.");
79+
instance;
80+
case false:
81+
trace("Creating new FreeplayManager instance.");
82+
instance = new FreeplayManager();
6383
}
84+
#end
6485
}
6586

6687
//Static things

0 commit comments

Comments
 (0)