diff --git a/source/funkin/backend/system/Flags.hx b/source/funkin/backend/system/Flags.hx index 61422401..804da965 100644 --- a/source/funkin/backend/system/Flags.hx +++ b/source/funkin/backend/system/Flags.hx @@ -6,9 +6,13 @@ import lime.utils.AssetType; import funkin.backend.assets.IModsAssetLibrary; import funkin.backend.assets.ScriptedAssetLibrary; +/** + * A class that reads the `flags.ini` file, allowing to read settable Flags (customs too). + */ @:build(funkin.backend.system.macros.FlagMacro.build()) class Flags { - public static var FPS_BUILD_TEXT:String = "Commit ${build} (${commit})"; + public static var SONGS_LIST_MOD_MODE:Allow<"prepend", "override", "append"> = "override"; + public static var WEEKS_LIST_MOD_MODE:Allow<"prepend", "override", "append"> = "override"; // Internal stuff diff --git a/source/funkin/backend/system/framerate/CodenameBuildField.hx b/source/funkin/backend/system/framerate/CodenameBuildField.hx index 092fc736..5519f4d8 100644 --- a/source/funkin/backend/system/framerate/CodenameBuildField.hx +++ b/source/funkin/backend/system/framerate/CodenameBuildField.hx @@ -12,8 +12,6 @@ class CodenameBuildField extends TextField { reload(); } - public function reload() { - var buildText = Flags.FPS_BUILD_TEXT.replace("${build}", Std.string(GitCommitMacro.commitNumber)).replace("${commit}", GitCommitMacro.commitHash); - text = 'Codename Engine ${Main.releaseCycle}\n' + buildText; - } + public function reload() + text = 'Codename Engine ${Main.releaseCycle}\nCommit ${GitCommitMacro.commitNumber} (${GitCommitMacro.commitHash})'; } diff --git a/source/funkin/import.hx b/source/funkin/import.hx index eca238fd..88a2efdb 100644 --- a/source/funkin/import.hx +++ b/source/funkin/import.hx @@ -22,6 +22,8 @@ import flixel.math.FlxMath; import flixel.tweens.FlxEase; import flixel.util.FlxDestroyUtil; +import funkin.backend.system.Flags; + import funkin.menus.ui.Alphabet; import flixel.group.FlxGroup.FlxTypedGroup; import flixel.group.FlxSpriteGroup.FlxTypedSpriteGroup; diff --git a/source/funkin/menus/FreeplayState.hx b/source/funkin/menus/FreeplayState.hx index 3d3a4d15..7c35d53a 100644 --- a/source/funkin/menus/FreeplayState.hx +++ b/source/funkin/menus/FreeplayState.hx @@ -465,8 +465,17 @@ class FreeplaySonglist { public static function get(useTxt:Bool = true) { var songList = new FreeplaySonglist(); - if (songList.getSongsFromSource(MODS, useTxt)) - songList.getSongsFromSource(SOURCE, useTxt); + switch(Flags.SONGS_LIST_MOD_MODE) { + case 'prepend': + songList.getSongsFromSource(MODS, useTxt); + songList.getSongsFromSource(SOURCE, useTxt); + case 'append': + songList.getSongsFromSource(SOURCE, useTxt); + songList.getSongsFromSource(MODS, useTxt); + default /*case 'override'*/: + if (songList.getSongsFromSource(MODS, useTxt)) + songList.getSongsFromSource(SOURCE, useTxt); + } return songList; } diff --git a/source/funkin/menus/StoryMenuState.hx b/source/funkin/menus/StoryMenuState.hx index e8ab5c25..6c30e2c3 100644 --- a/source/funkin/menus/StoryMenuState.hx +++ b/source/funkin/menus/StoryMenuState.hx @@ -205,8 +205,18 @@ class StoryMenuState extends MusicBeatState { public function loadXMLs() { // CoolUtil.coolTextFile(Paths.txt('freeplaySonglist')); var weeks:Array = []; - if (getWeeksFromSource(weeks, MODS)) - getWeeksFromSource(weeks, SOURCE); + + switch(Flags.WEEKS_LIST_MOD_MODE) { + case 'prepend': + getWeeksFromSource(weeks, MODS); + getWeeksFromSource(weeks, SOURCE); + case 'append': + getWeeksFromSource(weeks, SOURCE); + getWeeksFromSource(weeks, MODS); + default /*case 'override'*/: + if (getWeeksFromSource(weeks, MODS)) + getWeeksFromSource(weeks, SOURCE); + } for(k=>weekName in weeks) { var week:Access = null;