diff --git a/Project.xml b/Project.xml
index 1ca349ac..efb1387f 100644
--- a/Project.xml
+++ b/Project.xml
@@ -134,7 +134,7 @@
-
+
@@ -157,4 +157,7 @@
+
+
+
diff --git a/assets/charts/blammed/easy.json b/assets/data/charts/blammed/easy.json
similarity index 100%
rename from assets/charts/blammed/easy.json
rename to assets/data/charts/blammed/easy.json
diff --git a/assets/charts/blammed/hard.json b/assets/data/charts/blammed/hard.json
similarity index 100%
rename from assets/charts/blammed/hard.json
rename to assets/data/charts/blammed/hard.json
diff --git a/assets/charts/blammed/normal.json b/assets/data/charts/blammed/normal.json
similarity index 100%
rename from assets/charts/blammed/normal.json
rename to assets/data/charts/blammed/normal.json
diff --git a/assets/charts/bopeebo/easy.json b/assets/data/charts/bopeebo/easy.json
similarity index 100%
rename from assets/charts/bopeebo/easy.json
rename to assets/data/charts/bopeebo/easy.json
diff --git a/assets/charts/bopeebo/hard.json b/assets/data/charts/bopeebo/hard.json
similarity index 100%
rename from assets/charts/bopeebo/hard.json
rename to assets/data/charts/bopeebo/hard.json
diff --git a/assets/charts/bopeebo/normal.json b/assets/data/charts/bopeebo/normal.json
similarity index 100%
rename from assets/charts/bopeebo/normal.json
rename to assets/data/charts/bopeebo/normal.json
diff --git a/assets/charts/cocoa/easy.json b/assets/data/charts/cocoa/easy.json
similarity index 100%
rename from assets/charts/cocoa/easy.json
rename to assets/data/charts/cocoa/easy.json
diff --git a/assets/charts/cocoa/hard.json b/assets/data/charts/cocoa/hard.json
similarity index 100%
rename from assets/charts/cocoa/hard.json
rename to assets/data/charts/cocoa/hard.json
diff --git a/assets/charts/cocoa/normal.json b/assets/data/charts/cocoa/normal.json
similarity index 100%
rename from assets/charts/cocoa/normal.json
rename to assets/data/charts/cocoa/normal.json
diff --git a/assets/charts/dadbattle/easy.json b/assets/data/charts/dadbattle/easy.json
similarity index 100%
rename from assets/charts/dadbattle/easy.json
rename to assets/data/charts/dadbattle/easy.json
diff --git a/assets/charts/dadbattle/hard.json b/assets/data/charts/dadbattle/hard.json
similarity index 100%
rename from assets/charts/dadbattle/hard.json
rename to assets/data/charts/dadbattle/hard.json
diff --git a/assets/charts/dadbattle/normal.json b/assets/data/charts/dadbattle/normal.json
similarity index 100%
rename from assets/charts/dadbattle/normal.json
rename to assets/data/charts/dadbattle/normal.json
diff --git a/assets/charts/eggnog/easy.json b/assets/data/charts/eggnog/easy.json
similarity index 100%
rename from assets/charts/eggnog/easy.json
rename to assets/data/charts/eggnog/easy.json
diff --git a/assets/charts/eggnog/hard.json b/assets/data/charts/eggnog/hard.json
similarity index 100%
rename from assets/charts/eggnog/hard.json
rename to assets/data/charts/eggnog/hard.json
diff --git a/assets/charts/eggnog/normal.json b/assets/data/charts/eggnog/normal.json
similarity index 100%
rename from assets/charts/eggnog/normal.json
rename to assets/data/charts/eggnog/normal.json
diff --git a/assets/charts/fresh/easy.json b/assets/data/charts/fresh/easy.json
similarity index 100%
rename from assets/charts/fresh/easy.json
rename to assets/data/charts/fresh/easy.json
diff --git a/assets/charts/fresh/hard.json b/assets/data/charts/fresh/hard.json
similarity index 100%
rename from assets/charts/fresh/hard.json
rename to assets/data/charts/fresh/hard.json
diff --git a/assets/charts/fresh/normal.json b/assets/data/charts/fresh/normal.json
similarity index 100%
rename from assets/charts/fresh/normal.json
rename to assets/data/charts/fresh/normal.json
diff --git a/assets/charts/guns/easy.json b/assets/data/charts/guns/easy.json
similarity index 100%
rename from assets/charts/guns/easy.json
rename to assets/data/charts/guns/easy.json
diff --git a/assets/charts/guns/hard.json b/assets/data/charts/guns/hard.json
similarity index 100%
rename from assets/charts/guns/hard.json
rename to assets/data/charts/guns/hard.json
diff --git a/assets/charts/guns/normal.json b/assets/data/charts/guns/normal.json
similarity index 100%
rename from assets/charts/guns/normal.json
rename to assets/data/charts/guns/normal.json
diff --git a/assets/charts/high/easy.json b/assets/data/charts/high/easy.json
similarity index 100%
rename from assets/charts/high/easy.json
rename to assets/data/charts/high/easy.json
diff --git a/assets/charts/high/hard.json b/assets/data/charts/high/hard.json
similarity index 100%
rename from assets/charts/high/hard.json
rename to assets/data/charts/high/hard.json
diff --git a/assets/charts/high/normal.json b/assets/data/charts/high/normal.json
similarity index 100%
rename from assets/charts/high/normal.json
rename to assets/data/charts/high/normal.json
diff --git a/assets/charts/milf/bump.hx b/assets/data/charts/milf/bump.hx
similarity index 100%
rename from assets/charts/milf/bump.hx
rename to assets/data/charts/milf/bump.hx
diff --git a/assets/charts/milf/easy.json b/assets/data/charts/milf/easy.json
similarity index 100%
rename from assets/charts/milf/easy.json
rename to assets/data/charts/milf/easy.json
diff --git a/assets/charts/milf/hard.json b/assets/data/charts/milf/hard.json
similarity index 100%
rename from assets/charts/milf/hard.json
rename to assets/data/charts/milf/hard.json
diff --git a/assets/charts/milf/normal.json b/assets/data/charts/milf/normal.json
similarity index 100%
rename from assets/charts/milf/normal.json
rename to assets/data/charts/milf/normal.json
diff --git a/assets/charts/monster/easy.json b/assets/data/charts/monster/easy.json
similarity index 100%
rename from assets/charts/monster/easy.json
rename to assets/data/charts/monster/easy.json
diff --git a/assets/charts/monster/hard.json b/assets/data/charts/monster/hard.json
similarity index 100%
rename from assets/charts/monster/hard.json
rename to assets/data/charts/monster/hard.json
diff --git a/assets/charts/monster/normal.json b/assets/data/charts/monster/normal.json
similarity index 100%
rename from assets/charts/monster/normal.json
rename to assets/data/charts/monster/normal.json
diff --git a/assets/charts/philly nice/easy.json b/assets/data/charts/philly nice/easy.json
similarity index 100%
rename from assets/charts/philly nice/easy.json
rename to assets/data/charts/philly nice/easy.json
diff --git a/assets/charts/philly nice/hard.json b/assets/data/charts/philly nice/hard.json
similarity index 100%
rename from assets/charts/philly nice/hard.json
rename to assets/data/charts/philly nice/hard.json
diff --git a/assets/charts/philly nice/normal.json b/assets/data/charts/philly nice/normal.json
similarity index 100%
rename from assets/charts/philly nice/normal.json
rename to assets/data/charts/philly nice/normal.json
diff --git a/assets/charts/pico/easy.json b/assets/data/charts/pico/easy.json
similarity index 100%
rename from assets/charts/pico/easy.json
rename to assets/data/charts/pico/easy.json
diff --git a/assets/charts/pico/hard.json b/assets/data/charts/pico/hard.json
similarity index 100%
rename from assets/charts/pico/hard.json
rename to assets/data/charts/pico/hard.json
diff --git a/assets/charts/pico/normal.json b/assets/data/charts/pico/normal.json
similarity index 100%
rename from assets/charts/pico/normal.json
rename to assets/data/charts/pico/normal.json
diff --git a/assets/charts/ridge/normal.json b/assets/data/charts/ridge/normal.json
similarity index 100%
rename from assets/charts/ridge/normal.json
rename to assets/data/charts/ridge/normal.json
diff --git a/assets/charts/roses/easy.json b/assets/data/charts/roses/easy.json
similarity index 100%
rename from assets/charts/roses/easy.json
rename to assets/data/charts/roses/easy.json
diff --git a/assets/charts/roses/hard.json b/assets/data/charts/roses/hard.json
similarity index 100%
rename from assets/charts/roses/hard.json
rename to assets/data/charts/roses/hard.json
diff --git a/assets/charts/roses/normal.json b/assets/data/charts/roses/normal.json
similarity index 100%
rename from assets/charts/roses/normal.json
rename to assets/data/charts/roses/normal.json
diff --git a/assets/charts/satin panties/easy.json b/assets/data/charts/satin panties/easy.json
similarity index 100%
rename from assets/charts/satin panties/easy.json
rename to assets/data/charts/satin panties/easy.json
diff --git a/assets/charts/satin panties/hard.json b/assets/data/charts/satin panties/hard.json
similarity index 100%
rename from assets/charts/satin panties/hard.json
rename to assets/data/charts/satin panties/hard.json
diff --git a/assets/charts/satin panties/normal.json b/assets/data/charts/satin panties/normal.json
similarity index 100%
rename from assets/charts/satin panties/normal.json
rename to assets/data/charts/satin panties/normal.json
diff --git a/assets/charts/senpai/easy.json b/assets/data/charts/senpai/easy.json
similarity index 100%
rename from assets/charts/senpai/easy.json
rename to assets/data/charts/senpai/easy.json
diff --git a/assets/charts/senpai/hard.json b/assets/data/charts/senpai/hard.json
similarity index 100%
rename from assets/charts/senpai/hard.json
rename to assets/data/charts/senpai/hard.json
diff --git a/assets/charts/senpai/normal.json b/assets/data/charts/senpai/normal.json
similarity index 100%
rename from assets/charts/senpai/normal.json
rename to assets/data/charts/senpai/normal.json
diff --git a/assets/charts/smash/normal.json b/assets/data/charts/smash/normal.json
similarity index 100%
rename from assets/charts/smash/normal.json
rename to assets/data/charts/smash/normal.json
diff --git a/assets/charts/south/easy.json b/assets/data/charts/south/easy.json
similarity index 100%
rename from assets/charts/south/easy.json
rename to assets/data/charts/south/easy.json
diff --git a/assets/charts/south/hard.json b/assets/data/charts/south/hard.json
similarity index 100%
rename from assets/charts/south/hard.json
rename to assets/data/charts/south/hard.json
diff --git a/assets/charts/south/normal.json b/assets/data/charts/south/normal.json
similarity index 100%
rename from assets/charts/south/normal.json
rename to assets/data/charts/south/normal.json
diff --git a/assets/charts/spookeez/easy.json b/assets/data/charts/spookeez/easy.json
similarity index 100%
rename from assets/charts/spookeez/easy.json
rename to assets/data/charts/spookeez/easy.json
diff --git a/assets/charts/spookeez/hard.json b/assets/data/charts/spookeez/hard.json
similarity index 100%
rename from assets/charts/spookeez/hard.json
rename to assets/data/charts/spookeez/hard.json
diff --git a/assets/charts/spookeez/normal.json b/assets/data/charts/spookeez/normal.json
similarity index 100%
rename from assets/charts/spookeez/normal.json
rename to assets/data/charts/spookeez/normal.json
diff --git a/assets/charts/stress/easy.json b/assets/data/charts/stress/easy.json
similarity index 100%
rename from assets/charts/stress/easy.json
rename to assets/data/charts/stress/easy.json
diff --git a/assets/charts/stress/hard.json b/assets/data/charts/stress/hard.json
similarity index 100%
rename from assets/charts/stress/hard.json
rename to assets/data/charts/stress/hard.json
diff --git a/assets/charts/stress/normal.json b/assets/data/charts/stress/normal.json
similarity index 100%
rename from assets/charts/stress/normal.json
rename to assets/data/charts/stress/normal.json
diff --git a/assets/charts/stress/picospeaker.json b/assets/data/charts/stress/picospeaker.json
similarity index 100%
rename from assets/charts/stress/picospeaker.json
rename to assets/data/charts/stress/picospeaker.json
diff --git a/assets/charts/test/normal.json b/assets/data/charts/test/normal.json
similarity index 100%
rename from assets/charts/test/normal.json
rename to assets/data/charts/test/normal.json
diff --git a/assets/charts/thorns/easy.json b/assets/data/charts/thorns/easy.json
similarity index 100%
rename from assets/charts/thorns/easy.json
rename to assets/data/charts/thorns/easy.json
diff --git a/assets/charts/thorns/hard.json b/assets/data/charts/thorns/hard.json
similarity index 100%
rename from assets/charts/thorns/hard.json
rename to assets/data/charts/thorns/hard.json
diff --git a/assets/charts/thorns/normal.json b/assets/data/charts/thorns/normal.json
similarity index 100%
rename from assets/charts/thorns/normal.json
rename to assets/data/charts/thorns/normal.json
diff --git a/assets/charts/tutorial/easy.json b/assets/data/charts/tutorial/easy.json
similarity index 100%
rename from assets/charts/tutorial/easy.json
rename to assets/data/charts/tutorial/easy.json
diff --git a/assets/charts/tutorial/hard.json b/assets/data/charts/tutorial/hard.json
similarity index 100%
rename from assets/charts/tutorial/hard.json
rename to assets/data/charts/tutorial/hard.json
diff --git a/assets/charts/tutorial/normal.json b/assets/data/charts/tutorial/normal.json
similarity index 100%
rename from assets/charts/tutorial/normal.json
rename to assets/data/charts/tutorial/normal.json
diff --git a/assets/charts/tutorial/test.hx b/assets/data/charts/tutorial/test.hx
similarity index 100%
rename from assets/charts/tutorial/test.hx
rename to assets/data/charts/tutorial/test.hx
diff --git a/assets/charts/ugh/easy.json b/assets/data/charts/ugh/easy.json
similarity index 100%
rename from assets/charts/ugh/easy.json
rename to assets/data/charts/ugh/easy.json
diff --git a/assets/charts/ugh/hard.json b/assets/data/charts/ugh/hard.json
similarity index 100%
rename from assets/charts/ugh/hard.json
rename to assets/data/charts/ugh/hard.json
diff --git a/assets/charts/ugh/normal.json b/assets/data/charts/ugh/normal.json
similarity index 100%
rename from assets/charts/ugh/normal.json
rename to assets/data/charts/ugh/normal.json
diff --git a/assets/charts/winter horrorland/easy.json b/assets/data/charts/winter horrorland/easy.json
similarity index 100%
rename from assets/charts/winter horrorland/easy.json
rename to assets/data/charts/winter horrorland/easy.json
diff --git a/assets/charts/winter horrorland/hard.json b/assets/data/charts/winter horrorland/hard.json
similarity index 100%
rename from assets/charts/winter horrorland/hard.json
rename to assets/data/charts/winter horrorland/hard.json
diff --git a/assets/charts/winter horrorland/normal.json b/assets/data/charts/winter horrorland/normal.json
similarity index 100%
rename from assets/charts/winter horrorland/normal.json
rename to assets/data/charts/winter horrorland/normal.json
diff --git a/buildnumber.txt b/buildnumber.txt
index 2e790af6..7c2b0182 100644
--- a/buildnumber.txt
+++ b/buildnumber.txt
@@ -1 +1 @@
-510
\ No newline at end of file
+521
\ No newline at end of file
diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx
index 479749e2..86a44d16 100644
--- a/source/funkin/game/PlayState.hx
+++ b/source/funkin/game/PlayState.hx
@@ -220,7 +220,7 @@ class PlayState extends MusicBeatState
// case "":
// ADD YOUR HARDCODED SCRIPTS HERE!
default:
- var content = Paths.getFolderContent('charts/${SONG.song}/', false, true, !fromMods);
+ var content = Paths.getFolderContent('data/charts/${SONG.song}/', false, true, !fromMods);
for(file in content) {
var ext = Path.extension(file).toLowerCase();
if (Script.scriptExtensions.contains(ext)) {
diff --git a/source/funkin/menus/TitleState.hx b/source/funkin/menus/TitleState.hx
index d03abf26..4814e1d3 100644
--- a/source/funkin/menus/TitleState.hx
+++ b/source/funkin/menus/TitleState.hx
@@ -67,6 +67,8 @@ class TitleState extends MusicBeatState
Conductor.changeBPM(102);
persistentUpdate = true;
+ loadXML();
+
var bg:FlxSprite = new FlxSprite().makeGraphic(FlxG.width, FlxG.height, FlxColor.BLACK);
add(bg);
@@ -223,7 +225,7 @@ class TitleState extends MusicBeatState
gfDance.animation.play('danceLeft');
#if TITLESCREEN_XML
- if (curBeat >= 16 || skippedIntro) {
+ if (curBeat >= titleLength || skippedIntro) {
if (!skippedIntro) skipIntro();
return;
}
@@ -274,10 +276,10 @@ class TitleState extends MusicBeatState
public function loadXML() {
try {
- xml = new Access(Xml.parse(Assets.getText('data/titlescreen.xml')).firstElement());
- if (xml.has.length) titleLength = CoolUtil.getDefault(Std.parseInt(xml.att.length), 16);
+ 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);
for(text in xml.node.intro.nodes.text) {
var beat:Int = CoolUtil.getDefault(text.has.beat ? Std.parseInt(text.att.beat) : null, 0);
var texts:Array> = [];
diff --git a/source/funkin/mods/ModsAssetLibrary.hx b/source/funkin/mods/ModsAssetLibrary.hx
index 90c2ceff..953bb44c 100644
--- a/source/funkin/mods/ModsAssetLibrary.hx
+++ b/source/funkin/mods/ModsAssetLibrary.hx
@@ -15,7 +15,7 @@ import lime.text.Font;
import lime.utils.AssetType;
import lime.utils.Bytes;
-#if sys
+#if MOD_SUPPORT
import sys.FileStat;
import sys.FileSystem;
#end
@@ -32,7 +32,7 @@ class ModsAssetLibrary extends AssetLibrary {
super();
}
- #if sys
+ #if MOD_SUPPORT
private var editedTimes:Map = [];
var _parsedAsset:String = null;
diff --git a/source/funkin/mods/ModsFolder.hx b/source/funkin/mods/ModsFolder.hx
index 406b67b2..1ee5794a 100644
--- a/source/funkin/mods/ModsFolder.hx
+++ b/source/funkin/mods/ModsFolder.hx
@@ -5,7 +5,7 @@ import openfl.utils.AssetManifest;
import openfl.utils.AssetLibrary;
import flixel.graphics.FlxGraphic;
-#if sys
+#if MOD_SUPPORT
import sys.FileSystem;
#end
@@ -16,7 +16,7 @@ import haxe.io.Path;
using StringTools;
class ModsFolder {
- #if sys
+ #if MOD_SUPPORT
/**
* Last time the folder was modified.
*/
@@ -148,7 +148,7 @@ class ModsFolder {
lime.utils.Assets.cache.clear();
if (currentModFolder == null) return;
- #if sys
+ #if MOD_SUPPORT
var bmapsToRemove:Array = [];
@:privateAccess
for(bmap in FlxG.bitmap._cache) {
diff --git a/source/funkin/system/FramerateField.hx b/source/funkin/system/FramerateField.hx
index 42e9bdc2..f7128c0d 100644
--- a/source/funkin/system/FramerateField.hx
+++ b/source/funkin/system/FramerateField.hx
@@ -45,7 +45,7 @@ class FramerateField extends TextField {
FlxG.stage.addEventListener(KeyboardEvent.KEY_UP, function(e:KeyboardEvent) {
switch(e.keyCode) {
- case 114: // F3
+ case #if web Keyboard.NUMBER_3 #else Keyboard.F3 #end: // 3 on web or F3 on windows, linux and other things that runs code
debugMode = !debugMode;
}
});
@@ -57,6 +57,7 @@ class FramerateField extends TextField {
lastFPS = CoolUtil.fpsLerp(lastFPS, FlxG.elapsed == 0 ? 0 : (1 / FlxG.elapsed), 0.25);
text.push('FPS: ${Std.int(lastFPS)}');
}
+ #if !web
if (showMemory || debugMode) {
text.push('RAM: ${CoolUtil.getSizeString(System.totalMemory)}');
}
@@ -65,6 +66,7 @@ class FramerateField extends TextField {
peak = System.totalMemory;
text.push('RAM PEAK: (${CoolUtil.getSizeString(peak)})');
}
+ #end
#if !release
text.push('CODENAME ENGINE ALPHA - BUILD ${funkin.macros.BuildCounterMacro.getBuildNumber()}');
#end
diff --git a/source/funkin/system/Main.hx b/source/funkin/system/Main.hx
index e348ab94..4d01f45b 100644
--- a/source/funkin/system/Main.hx
+++ b/source/funkin/system/Main.hx
@@ -90,9 +90,9 @@ class Main extends Sprite
#end
- addChild(new FlxGame(gameWidth, gameHeight, initialState, zoom, framerate, framerate, skipSplash, startFullscreen));
-
+ addChild(new FlxGame(gameWidth, gameHeight, null, zoom, framerate, framerate, skipSplash, startFullscreen));
loadGameSettings();
+ FlxG.switchState(new TitleState());
#if !mobile
addChild(new FramerateField(10, 3, 0xFFFFFF));
@@ -129,7 +129,7 @@ class Main extends Sprite
#end
FlxG.fixedTimestep = false;
- FlxG.autoPause = false;
+ // FlxG.autoPause = false;
Options.load();
diff --git a/source/funkin/system/Paths.hx b/source/funkin/system/Paths.hx
index 1328e5ff..52747922 100644
--- a/source/funkin/system/Paths.hx
+++ b/source/funkin/system/Paths.hx
@@ -119,12 +119,12 @@ class Paths
var difficultyEnd = (difficulty == "normal") ? "" : '-$difficulty';
- // charts/your-song/hard.json
- var p = getPath('charts/$song/$difficulty.json', TEXT, null);
+ // data/charts/your-song/hard.json
+ var p = json('charts/$song/$difficulty');
if (OpenFlAssets.exists(p)) return p;
- // charts/your-song/your-song-hard.json
- var p2 = getPath('charts/$song/$song$difficultyEnd.json', TEXT, null);
+ // data/charts/your-song/your-song-hard.json
+ var p2 = json('charts/$song/$song$difficultyEnd');
if (OpenFlAssets.exists(p2)) return p2;
// data/your-song/your-song-hard.json (default old format)
@@ -168,7 +168,7 @@ class Paths
}
var content:Array = [];
- #if sys
+ #if MOD_SUPPORT
if (library is funkin.mods.ModsAssetLibrary) {
// easy task, can immediatly scan for files!
var lib = cast(library, funkin.mods.ModsAssetLibrary);
diff --git a/source/funkin/ui/Alphabet.hx b/source/funkin/ui/Alphabet.hx
index 0fa5428d..533a2b56 100644
--- a/source/funkin/ui/Alphabet.hx
+++ b/source/funkin/ui/Alphabet.hx
@@ -98,6 +98,7 @@ class Alphabet extends FlxSpriteGroup
@:privateAccess
library = cast(library.__proxy, AssetLibrary);
}
+ #if MOD_SUPPORT
if (library is ModsAssetLibrary) {
var modLib = cast(library, ModsAssetLibrary);
@:privateAccess
@@ -105,6 +106,7 @@ class Alphabet extends FlxSpriteGroup
refreshAlphabetXML(alphabetPath);
}
}
+ #end
}
}