diff --git a/assets/data/titlescreen/titlescreen.xml b/assets/data/titlescreen/titlescreen.xml
index f16c8b62..323e9ef1 100644
--- a/assets/data/titlescreen/titlescreen.xml
+++ b/assets/data/titlescreen/titlescreen.xml
@@ -7,7 +7,7 @@
-
+
diff --git a/project.xml b/project.xml
index a3647636..95524498 100644
--- a/project.xml
+++ b/project.xml
@@ -118,9 +118,6 @@
-
-
-
diff --git a/source/funkin/menus/TitleState.hx b/source/funkin/menus/TitleState.hx
index a28cba18..a4a42385 100644
--- a/source/funkin/menus/TitleState.hx
+++ b/source/funkin/menus/TitleState.hx
@@ -51,11 +51,9 @@ class TitleState extends MusicBeatState
var bg:FlxSprite = new FlxSprite().makeSolid(FlxG.width, FlxG.height, FlxColor.BLACK);
add(bg);
- #if TITLESCREEN_XML
titleScreenSprites = new MusicBeatGroup();
add(titleScreenSprites);
loadXML();
- #end
if (titleText == null) {
titleText = new FlxSprite(100, FlxG.height * 0.8);
@@ -73,16 +71,6 @@ class TitleState extends MusicBeatState
blackScreen = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, FlxColor.BLACK);
add(blackScreen);
- #if !TITLESCREEN_XML
- ngSpr = new FlxSprite(0, FlxG.height * 0.52).loadAnimatedGraphic(Paths.image('newgrounds_logo'));
- add(ngSpr);
- ngSpr.visible = false;
- ngSpr.setGraphicSize(Std.int(ngSpr.width * 0.8));
- ngSpr.updateHitbox();
- ngSpr.screenCenter(X);
- ngSpr.antialiasing = true;
- #end
-
FlxG.mouse.visible = false;
if (initialized)
@@ -212,7 +200,6 @@ class TitleState extends MusicBeatState
{
super.beatHit(curBeat);
- #if TITLESCREEN_XML
if (curBeat >= titleLength || skippedIntro) {
if (!skippedIntro) skipIntro();
return;
@@ -220,27 +207,8 @@ class TitleState extends MusicBeatState
var introText = titleLines[curBeat];
if (introText != null)
introText.show();
- #else
- switch (curBeat)
- {
- case 1: createCoolText(['ninjamuffin99', 'phantomArcade', 'kawaisprite', 'evilsk8er']);
- case 3: addMoreText('present');
- case 4: deleteCoolText();
- case 5: createCoolText(['In association', 'with']);
- case 7: addMoreText('newgrounds'); ngSpr.visible = true;
- case 8: deleteCoolText(); ngSpr.visible = false;
- case 9: createCoolText([curWacky[0]]);
- case 11: addMoreText(curWacky[1]);
- case 12: deleteCoolText();
- case 13: addMoreText('Friday');
- case 14: addMoreText('Night');
- case 15: addMoreText('Funkin');
- case 16: skipIntro();
- }
- #end
}
- #if TITLESCREEN_XML
public var xml:Access;
public var titleLength:Int = 16;
public var titleLines:Map = [
@@ -262,12 +230,14 @@ class TitleState extends MusicBeatState
15 => new IntroText(['Friday', 'Night', "Funkin'"]),
];
+ public var titleSprites:Map = [];
+
public function loadXML() {
try {
xml = new Access(Xml.parse(Assets.getText(Paths.xml('titlescreen/titlescreen'))).firstElement());
if (xml.hasNode.intro) {
titleLines = [];
- if (xml.node.intro.has.length) titleLength = CoolUtil.getDefault(Std.parseInt(xml.node.intro.att.length), 16);
+ if (xml.node.intro.has.length) titleLength = Std.parseInt(xml.node.intro.att.length).getDefault(16);
for(node in xml.nodes.sprites) {
var parentFolder:String = node.getAtt("folder").getDefault("");
if (parentFolder != "" && !parentFolder.endsWith("/")) parentFolder += "/";
@@ -279,26 +249,28 @@ class TitleState extends MusicBeatState
default:
titleScreenSprites.add(spr);
}
+ if(node.has.name) titleSprites[node.att.name] = spr;
}
}
for(text in xml.node.intro.nodes.text) {
- var beat:Int = CoolUtil.getDefault(text.has.beat ? Std.parseInt(text.att.beat) : null, 0);
+ var beat:Int = text.has.beat ? Std.parseInt(text.att.beat).getDefault(0) : 0;
var texts:Array> = [];
- for(e in text.elements) {
- switch(e.name) {
+ for(node in text.elements) {
+ switch(node.name) {
case "line":
- if (!e.has.text) continue;
- texts.push(e.att.text);
+ if (!node.has.text) continue;
+ texts.push(node.att.text);
case "introtext":
- if (!e.has.line) continue;
- texts.push('{introText${e.att.line}}');
+ if (!node.has.line) continue;
+ texts.push('{introText${node.att.line}}');
case "sprite":
- if (!e.has.path) continue;
- var name:String = e.has.name ? e.att.name : null;
- var path:String = e.att.path;
- var flipX:Bool = e.has.flipX ? e.att.flipX == "true" : false;
- var flipY:Bool = e.has.flipY ? e.att.flipY == "true" : false;
- var scale:Float = e.has.scale ? CoolUtil.getDefault(Std.parseFloat(e.att.scale), 1) : 1;
+ if (!node.has.path) continue;
+ var name:String = node.has.name ? node.att.name : null;
+ var path:String = node.att.path;
+ var flipX:Bool = node.has.flipX ? node.att.flipX == "true" : false;
+ var flipY:Bool = node.has.flipY ? node.att.flipY == "true" : false;
+ var scale:Float = node.has.scale ? Std.parseFloat(node.att.scale).getDefault(1) : 1;
+
texts.push({
name: name,
path: path,
@@ -315,7 +287,6 @@ class TitleState extends MusicBeatState
Logs.trace('Failed to load titlescreen XML: $e', ERROR);
}
}
- #end
var skippedIntro:Bool = false;
@@ -323,10 +294,6 @@ class TitleState extends MusicBeatState
{
if (!skippedIntro)
{
- #if !TITLESCREEN_XML
- remove(ngSpr);
- #end
-
FlxG.camera.flash(FlxColor.WHITE, 4);
remove(blackScreen);
blackScreen.destroy();
@@ -356,7 +323,7 @@ class IntroText {
var image:TitleStateImage = e;
if (image.path == null) continue;
- var scale:Float = CoolUtil.getDefault(image.scale, 1);
+ var scale:Float = image.scale.getDefault(1);
var yPos:Float = 200;
if(state.textGroup.members.length > 0) {
@@ -365,8 +332,8 @@ class IntroText {
}
var sprite = new FlxSprite(0, yPos).loadAnimatedGraphic(Paths.image(image.path));
- sprite.flipX = CoolUtil.getDefault(image.flipX, false);
- sprite.flipY = CoolUtil.getDefault(image.flipY, false);
+ sprite.flipX = image.flipX.getDefault(false);
+ sprite.flipY = image.flipY.getDefault(false);
sprite.scale.set(scale, scale);
sprite.updateHitbox();
sprite.screenCenter(X);