Lucky56 8ac6249e2b
compatibility changes for dadbattle + philly
'Dad Battle' is now called 'Dad Battle' in game and uses 'dadbattle' as files
'Philly' is now called 'Philly Nice' in game and uses 'philly' as files
2021-06-08 07:13:33 +02:00

99 lines
2.3 KiB
Haxe

package;
import Section.SwagSection;
import haxe.Json;
import haxe.format.JsonParser;
import lime.utils.Assets;
using StringTools;
typedef SwagSong =
{
var song:String;
var notes:Array<SwagSection>;
var bpm:Float;
var needsVoices:Bool;
var speed:Float;
var player1:String;
var player2:String;
var gfVersion:String;
var noteStyle:String;
var stage:String;
var validScore:Bool;
}
class Song
{
public var song:String;
public var notes:Array<SwagSection>;
public var bpm:Float;
public var needsVoices:Bool = true;
public var speed:Float = 1;
public var player1:String = 'bf';
public var player2:String = 'dad';
public var gfVersion:String = 'gf';
public var noteStyle:String = 'normal';
public var stage:String = 'stage';
public function new(song, notes, bpm)
{
this.song = song;
this.notes = notes;
this.bpm = bpm;
}
public static function loadFromJson(jsonInput:String, ?folder:String):SwagSong
{
trace(jsonInput);
// pre lowercasing the folder name
var folderLowercase = switch (folder)
{
case 'Dad Battle':
StringTools.replace(folder," ", "").toLowerCase();
case 'Philly Nice':
StringTools.replace(folder," Nice", "").toLowerCase();
default:
StringTools.replace(folder," ", "-").toLowerCase();
}
// pre lowercasing the jsonInput name
var jsonInputLowercase = folderLowercase + StringTools.replace(jsonInput,folder.toLowerCase(), "").toLowerCase();
trace('loading ' + folderLowercase + '/' + jsonInputLowercase);
var rawJson = Assets.getText(Paths.json(folderLowercase + '/' + jsonInputLowercase)).trim();
while (!rawJson.endsWith("}"))
{
rawJson = rawJson.substr(0, rawJson.length - 1);
// LOL GOING THROUGH THE BULLSHIT TO CLEAN IDK WHATS STRANGE
}
// FIX THE CASTING ON WINDOWS/NATIVE
// Windows???
// trace(songData);
// trace('LOADED FROM JSON: ' + songData.notes);
/*
for (i in 0...songData.notes.length)
{
trace('LOADED FROM JSON: ' + songData.notes[i].sectionNotes);
// songData.notes[i].sectionNotes = songData.notes[i].sectionNotes
}
daNotes = songData.notes;
daSong = songData.song;
daBpm = songData.bpm; */
return parseJSONshit(rawJson);
}
public static function parseJSONshit(rawJson:String):SwagSong
{
var swagShit:SwagSong = cast Json.parse(rawJson).song;
swagShit.validScore = true;
return swagShit;
}
}