2020-10-03 02:50:15 -04:00
|
|
|
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<project>
|
|
|
|
<!-- _________________________ Application Settings _________________________ -->
|
2022-03-08 03:13:53 -05:00
|
|
|
<app title="Friday Night Funkin'" file="Funkin" packageName="com.funkin.fnf" package="com.funkin.fnf" main="Main" version="0.3.0" company="ninjamuffin99" />
|
2020-11-07 19:56:29 -05:00
|
|
|
<!--Switch Export with Unique ApplicationID and Icon-->
|
2020-11-07 16:51:55 -05:00
|
|
|
<set name="APP_ID" value="0x0100f6c013bbc000" />
|
2024-03-28 04:34:43 -04:00
|
|
|
|
|
|
|
<!--
|
|
|
|
Define the OpenFL sprite which displays the preloader.
|
|
|
|
You can't replace the preloader's logic here, sadly, but you can extend it.
|
|
|
|
Basic preloading logic is done by `openfl.display.Preloader`.
|
|
|
|
-->
|
|
|
|
<app preloader="funkin.ui.transition.preload.FunkinPreloader" />
|
|
|
|
|
2020-10-03 02:50:15 -04:00
|
|
|
<!--Minimum without FLX_NO_GAMEPAD: 11.8, without FLX_NO_NATIVE_CURSOR: 11.2-->
|
|
|
|
<set name="SWF_VERSION" value="11.8" />
|
|
|
|
<!-- ____________________________ Window Settings ___________________________ -->
|
|
|
|
<!--These window settings apply to all targets-->
|
2024-03-28 04:34:43 -04:00
|
|
|
<window width="1280" height="720" fps="60" background="#000000" hardware="true" vsync="false" />
|
2020-10-03 02:50:15 -04:00
|
|
|
<!--HTML5-specific-->
|
|
|
|
<window if="html5" resizable="true" />
|
|
|
|
<!--Desktop-specific-->
|
2022-03-06 03:33:12 -05:00
|
|
|
<window if="desktop" orientation="landscape" fullscreen="false" resizable="true" vsync="false" />
|
2020-10-03 02:50:15 -04:00
|
|
|
<!--Mobile-specific-->
|
2022-03-06 03:33:12 -05:00
|
|
|
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" resizable="false" />
|
2020-10-03 02:50:15 -04:00
|
|
|
<!-- _____________________________ Path Settings ____________________________ -->
|
2023-08-28 15:03:29 -04:00
|
|
|
|
2020-10-03 15:32:15 -04:00
|
|
|
<set name="BUILD_DIR" value="export/debug" if="debug" />
|
|
|
|
<set name="BUILD_DIR" value="export/release" unless="debug" />
|
2020-10-09 17:24:20 -04:00
|
|
|
<set name="BUILD_DIR" value="export/32bit" if="32bit" />
|
2020-10-03 02:50:15 -04:00
|
|
|
<classpath name="source" />
|
2024-03-07 23:20:02 -05:00
|
|
|
<assets path="assets/preload" rename="assets" exclude="*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/preload" rename="assets" exclude="*.mp3|*.wav" unless="web" />
|
2021-02-10 15:18:14 -05:00
|
|
|
<define name="PRELOAD_ALL" unless="web" />
|
2022-03-06 03:33:12 -05:00
|
|
|
<define name="NO_PRELOAD_ALL" unless="PRELOAD_ALL" />
|
2021-02-11 14:14:02 -05:00
|
|
|
<section if="PRELOAD_ALL">
|
2022-03-06 03:33:12 -05:00
|
|
|
<library name="songs" preload="true" />
|
|
|
|
<library name="shared" preload="true" />
|
2021-02-10 15:28:05 -05:00
|
|
|
<library name="tutorial" preload="true" />
|
2022-03-06 03:33:12 -05:00
|
|
|
<library name="week1" preload="true" />
|
|
|
|
<library name="week2" preload="true" />
|
|
|
|
<library name="week3" preload="true" />
|
|
|
|
<library name="week4" preload="true" />
|
|
|
|
<library name="week5" preload="true" />
|
|
|
|
<library name="week6" preload="true" />
|
|
|
|
<library name="week7" preload="true" />
|
2022-07-06 21:49:42 -04:00
|
|
|
<library name="weekend1" preload="true" />
|
2021-02-10 15:28:05 -05:00
|
|
|
</section>
|
2021-02-11 14:14:02 -05:00
|
|
|
<section if="NO_PRELOAD_ALL">
|
2022-03-06 03:33:12 -05:00
|
|
|
<library name="songs" preload="false" />
|
|
|
|
<library name="shared" preload="false" />
|
2021-02-10 15:28:05 -05:00
|
|
|
<library name="tutorial" preload="false" />
|
2022-03-06 03:33:12 -05:00
|
|
|
<library name="week1" preload="false" />
|
|
|
|
<library name="week2" preload="false" />
|
|
|
|
<library name="week3" preload="false" />
|
|
|
|
<library name="week4" preload="false" />
|
|
|
|
<library name="week5" preload="false" />
|
|
|
|
<library name="week6" preload="false" />
|
|
|
|
<library name="week7" preload="false" />
|
2022-07-06 21:49:42 -04:00
|
|
|
<library name="weekend1" preload="false" />
|
2021-02-10 15:28:05 -05:00
|
|
|
</section>
|
2024-02-07 18:46:09 -05:00
|
|
|
<library name="art" preload="false" />
|
2024-03-07 23:20:02 -05:00
|
|
|
<assets path="assets/songs" library="songs" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/songs" library="songs" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/shared" library="shared" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/shared" library="shared" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/tutorial" library="tutorial" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/week1" library="week1" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/week1" library="week1" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/week2" library="week2" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/week2" library="week2" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/week3" library="week3" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/week3" library="week3" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/week4" library="week4" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/week4" library="week4" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/week5" library="week5" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/week5" library="week5" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/week6" library="week6" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/week6" library="week6" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/week7" library="week7" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/week7" library="week7" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
|
|
|
<assets path="assets/weekend1" library="weekend1" exclude="*.fla|*.ogg|*.wav" if="web" />
|
|
|
|
<assets path="assets/weekend1" library="weekend1" exclude="*.fla|*.mp3|*.wav" unless="web" />
|
2021-03-10 00:27:57 -05:00
|
|
|
<!-- <assets path='example_mods' rename='mods' embed='false'/> -->
|
2022-04-18 19:36:09 -04:00
|
|
|
<!--
|
|
|
|
AUTOMATICALLY MOVING EXAMPLE MODS INTO THE BUILD CAUSES ISSUES
|
|
|
|
Currently, this line will add the mod files to the library manifest,
|
|
|
|
which causes issues if the mod is not enabled.
|
|
|
|
If we can exclude the `mods` folder from the manifest, we can re-enable this line.
|
|
|
|
<assets path='example_mods' rename='mods' embed='false' exclude="*.md" />
|
|
|
|
-->
|
2024-02-07 18:46:09 -05:00
|
|
|
<assets path="art/readme.txt" rename="do NOT readme.txt" library="art"/>
|
|
|
|
<assets path="CHANGELOG.md" rename="changelog.txt" library="art"/>
|
2023-06-08 16:34:06 -04:00
|
|
|
<!-- NOTE FOR FUTURE SELF SINCE FONTS ARE ALWAYS FUCKY
|
2021-02-01 01:50:30 -05:00
|
|
|
TO FIX ONE OF THEM, I CONVERTED IT TO OTF. DUNNO IF YOU NEED TO
|
|
|
|
THEN UHHH I USED THE NAME OF THE FONT WITH SETFORMAT() ON THE TEXT!!!
|
|
|
|
NOT USING A DIRECT THING TO THE ASSET!!!
|
|
|
|
-->
|
2023-06-08 16:34:06 -04:00
|
|
|
<assets path="assets/fonts" embed="true" />
|
2024-03-13 17:38:00 -04:00
|
|
|
|
|
|
|
<!-- If compiled via github actions, show debug version number. -->
|
|
|
|
<define name="FORCE_DEBUG_VERSION" if="GITHUB_BUILD" />
|
|
|
|
<define name="NO_REDIRECT_ASSETS_FOLDER" if="GITHUB_BUILD" />
|
2024-03-28 04:34:43 -04:00
|
|
|
<define name="TOUCH_HERE_TO_PLAY" if="web" />
|
2024-03-13 17:38:00 -04:00
|
|
|
|
2020-10-03 02:50:15 -04:00
|
|
|
<!-- _______________________________ Libraries ______________________________ -->
|
2023-02-21 20:58:15 -05:00
|
|
|
<haxelib name="lime" /> <!-- Game engine backend -->
|
|
|
|
<haxelib name="openfl" /> <!-- Game engine backend -->
|
|
|
|
<haxelib name="flixel" /> <!-- Game engine -->
|
2023-08-28 15:03:29 -04:00
|
|
|
|
2023-06-08 16:34:06 -04:00
|
|
|
<haxedev set="webgl" />
|
2023-08-28 15:03:29 -04:00
|
|
|
|
2023-02-21 20:58:15 -05:00
|
|
|
<haxelib name="flixel-addons" /> <!-- Additional utilities for Flixel -->
|
|
|
|
<haxelib name="hscript" /> <!-- Scripting -->
|
2023-12-14 17:34:02 -05:00
|
|
|
<haxelib name="flixel-ui" /> <!-- UI framework (DEPRECATED) -->
|
2023-06-08 16:34:06 -04:00
|
|
|
<haxelib name="haxeui-core" /> <!-- UI framework -->
|
|
|
|
<haxelib name="haxeui-flixel" /> <!-- Integrate HaxeUI with Flixel -->
|
2023-12-14 17:34:02 -05:00
|
|
|
<haxelib name="flixel-text-input" /> <!-- Improved text field rendering for HaxeUI -->
|
2023-02-21 20:58:15 -05:00
|
|
|
<haxelib name="polymod" /> <!-- Modding framework -->
|
|
|
|
<haxelib name="flxanimate" /> <!-- Texture atlas rendering -->
|
2024-02-22 20:56:41 -05:00
|
|
|
<haxelib name="hxCodec" if="desktop" /> <!-- Video playback -->
|
2023-06-16 17:37:56 -04:00
|
|
|
|
2023-05-17 16:42:58 -04:00
|
|
|
<haxelib name="json2object" /> <!-- JSON parsing -->
|
2023-12-14 17:34:02 -05:00
|
|
|
<haxelib name="thx.semver" /> <!-- Version string handling -->
|
|
|
|
|
|
|
|
<haxelib name="hxcpp-debug-server" if="desktop debug" /> <!-- VSCode debug support -->
|
2023-06-16 17:37:56 -04:00
|
|
|
|
2020-10-03 02:50:15 -04:00
|
|
|
<!--Disable the Flixel core focus lost screen-->
|
2021-01-25 05:04:31 -05:00
|
|
|
<haxedef name="FLX_NO_FOCUS_LOST_SCREEN" />
|
2020-10-03 02:50:15 -04:00
|
|
|
<!--Disable the Flixel core debugger. Automatically gets set whenever you compile in release mode!-->
|
2024-02-12 23:15:18 -05:00
|
|
|
<haxedef name="FLX_NO_DEBUG" unless="debug || FORCE_DEBUG_VERSION" />
|
2020-10-03 02:50:15 -04:00
|
|
|
<!--Enable this for Nape release builds for a serious peformance improvement-->
|
|
|
|
<haxedef name="NAPE_RELEASE_BUILD" unless="debug" />
|
|
|
|
|
2023-06-09 14:12:37 -04:00
|
|
|
<!--
|
2023-05-30 16:21:37 -04:00
|
|
|
Hide deprecation warnings until they're fixed.
|
|
|
|
TODO: REMOVE THIS!!!!
|
2024-02-05 19:46:11 -05:00
|
|
|
<haxeflag name="-w" value="-WDeprecated" />
|
2023-05-30 16:21:37 -04:00
|
|
|
-->
|
2023-05-17 16:42:58 -04:00
|
|
|
|
2023-05-30 16:21:37 -04:00
|
|
|
<!-- Haxe 4.3.0+: Enable pretty syntax errors and stuff. -->
|
2024-01-09 19:31:39 -05:00
|
|
|
<haxedef name="message.reporting" value="pretty" />
|
2023-05-30 16:21:37 -04:00
|
|
|
|
2022-03-08 03:13:53 -05:00
|
|
|
<!-- _________________________________ Custom _______________________________ -->
|
2024-01-10 00:20:00 -05:00
|
|
|
<!-- Disable trace() calls in release builds to bump up performance.
|
|
|
|
<haxeflag name="- -no-traces" unless="debug" />-->
|
2022-03-06 02:37:38 -05:00
|
|
|
<!-- HScript relies heavily on Reflection, which means we can't use DCE. -->
|
2022-03-08 03:13:53 -05:00
|
|
|
<haxeflag name="-dce no" />
|
2023-01-22 19:55:30 -05:00
|
|
|
<!-- Ensure all Funkin' classes are available at runtime. -->
|
2022-03-08 03:13:53 -05:00
|
|
|
<haxeflag name="--macro" value="include('funkin')" />
|
2022-08-24 05:44:22 -04:00
|
|
|
<!-- Ensure all UI components are available at runtime. -->
|
2023-02-28 13:17:28 -05:00
|
|
|
<haxeflag name="--macro" value="include('haxe.ui.backend.flixel.components')" />
|
|
|
|
<haxeflag name="--macro" value="include('haxe.ui.containers.dialogs')" />
|
|
|
|
<haxeflag name="--macro" value="include('haxe.ui.containers.menus')" />
|
|
|
|
<haxeflag name="--macro" value="include('haxe.ui.containers.properties')" />
|
|
|
|
<haxeflag name="--macro" value="include('haxe.ui.core')" />
|
2023-06-08 16:34:06 -04:00
|
|
|
<haxeflag name="--macro" value="include('haxe.ui.components')" />
|
|
|
|
<haxeflag name="--macro" value="include('haxe.ui.containers')" />
|
2023-01-22 19:55:30 -05:00
|
|
|
<!--
|
|
|
|
Ensure additional class packages are available at runtime (some only really used by scripts).
|
|
|
|
Ignore packages we can't include.
|
|
|
|
-->
|
|
|
|
<haxeflag name="--macro" value="include('flixel', true, [ 'flixel.addons.editors.spine.*', 'flixel.addons.nape.*', 'flixel.system.macros.*' ])" />
|
2022-03-08 03:13:53 -05:00
|
|
|
<!-- Necessary to provide stack traces for HScript. -->
|
2022-04-18 19:36:09 -04:00
|
|
|
<haxedef name="hscriptPos" />
|
2023-08-28 15:03:29 -04:00
|
|
|
<haxedef name="safeMode"/>
|
2022-01-18 18:28:41 -05:00
|
|
|
<haxedef name="HXCPP_CHECK_POINTER" />
|
|
|
|
<haxedef name="HXCPP_STACK_LINE" />
|
2023-08-28 15:03:29 -04:00
|
|
|
<haxedef name="HXCPP_STACK_TRACE" />
|
2022-03-08 03:13:53 -05:00
|
|
|
<!-- This macro allows addition of new functionality to existing Flixel. -->
|
|
|
|
<haxeflag name="--macro" value="addMetadata('@:build(funkin.util.macro.FlxMacro.buildFlxBasic())', 'flixel.FlxBasic')" />
|
2020-10-03 02:50:15 -04:00
|
|
|
<!--Place custom nodes like icons here (higher priority to override the HaxeFlixel icon)-->
|
2023-06-08 16:34:06 -04:00
|
|
|
<icon path="art/icon16.png" size="16" />
|
|
|
|
<icon path="art/icon32.png" size="32" />
|
|
|
|
<icon path="art/icon64.png" size="64" />
|
2021-02-16 01:53:25 -05:00
|
|
|
<icon path="art/iconOG.png" />
|
2022-03-06 03:33:12 -05:00
|
|
|
<haxedef name="CAN_OPEN_LINKS" unless="switch" />
|
|
|
|
<haxedef name="CAN_CHEAT" if="switch debug" />
|
2023-11-24 00:42:07 -05:00
|
|
|
<!-- I don't remember what this is for. -->
|
2022-10-26 01:14:29 -04:00
|
|
|
<haxedef name="haxeui_no_mouse_reset" />
|
2023-10-27 01:42:05 -04:00
|
|
|
<!-- Clicking outside a dialog should deselect the current focused component. -->
|
|
|
|
<haxedef name="haxeui_focus_out_on_click" />
|
2023-11-24 00:42:07 -05:00
|
|
|
<!-- Required to use haxe.ui.backend.flixel.UIState with build macros. -->
|
|
|
|
<haxedef name="haxeui_dont_impose_base_class" />
|
|
|
|
|
2022-02-09 20:24:33 -05:00
|
|
|
<!-- Skip the Intro -->
|
2022-02-09 20:34:32 -05:00
|
|
|
<section if="debug">
|
2022-02-09 20:24:33 -05:00
|
|
|
<!-- Starts the game at the specified week, at the first song -->
|
|
|
|
<!-- <haxedef name="week" value="1" if="debug"/> -->
|
|
|
|
<!-- Starts the game at the specified song -->
|
|
|
|
<!-- <haxedef name="song" value="bopeebo" if="debug"/> -->
|
|
|
|
<!-- Difficulty, only used for week or song, defaults to 1 -->
|
|
|
|
<!-- <haxedef name="dif" value="2" if="debug"/> -->
|
|
|
|
</section>
|
2021-02-19 21:11:33 -05:00
|
|
|
<section if="newgrounds">
|
|
|
|
<!-- Enables Ng.core.verbose -->
|
2021-02-21 13:08:30 -05:00
|
|
|
<!-- <haxedef name="NG_VERBOSE" /> -->
|
2021-02-19 21:11:33 -05:00
|
|
|
<!-- Enables a NG debug session, so medals don't permently unlock -->
|
|
|
|
<!-- <haxedef name="NG_DEBUG" /> -->
|
|
|
|
<!-- pretends that the saved session Id was expired, forcing the reconnect prompt -->
|
|
|
|
<!-- <haxedef name="NG_FORCE_EXPIRED_SESSION" if="debug" /> -->
|
|
|
|
</section>
|
2023-08-14 23:12:30 -04:00
|
|
|
|
2023-08-28 15:03:29 -04:00
|
|
|
<!-- Uncomment this to wipe your input settings. -->
|
|
|
|
<!-- <haxedef name="CLEAR_INPUT_SAVE"/> -->
|
|
|
|
|
2024-03-12 17:57:52 -04:00
|
|
|
<section if="debug" unless="NO_REDIRECT_ASSETS_FOLDER || html5 || GITHUB_BUILD">
|
2023-07-17 21:54:58 -04:00
|
|
|
<!--
|
|
|
|
Use the parent assets folder rather than the exported one
|
|
|
|
No more will we accidentally undo our changes!
|
|
|
|
-->
|
|
|
|
<haxedef name="REDIRECT_ASSETS_FOLDER" />
|
|
|
|
</section>
|
2023-08-14 23:12:30 -04:00
|
|
|
|
2023-10-17 00:38:28 -04:00
|
|
|
|
|
|
|
<section>
|
|
|
|
<!--
|
|
|
|
This flag enables the popup/crashlog error handler.
|
|
|
|
However, it also messes with breakpoints on some platforms.
|
|
|
|
-->
|
|
|
|
<haxedef name="openfl-enable-handle-error" />
|
|
|
|
</section>
|
|
|
|
|
2023-08-28 15:03:29 -04:00
|
|
|
<!-- Run a script before and after building. -->
|
2024-02-13 00:18:47 -05:00
|
|
|
<prebuild haxe="source/Prebuild.hx"/> -->
|
2023-08-28 15:03:29 -04:00
|
|
|
<postbuild haxe="source/Postbuild.hx"/> -->
|
|
|
|
|
2023-09-08 17:41:20 -04:00
|
|
|
<!-- Enable this on platforms which do not support dropping files onto the window. -->
|
2024-03-13 17:38:00 -04:00
|
|
|
<haxedef name="FILE_DROP_UNSUPPORTED" if="mac" />
|
2023-09-08 17:41:20 -04:00
|
|
|
<section unless="FILE_DROP_UNSUPPORTED">
|
2024-03-13 17:38:00 -04:00
|
|
|
<haxedef name="FILE_DROP_SUPPORTED" />
|
2023-09-08 17:41:20 -04:00
|
|
|
</section>
|
|
|
|
|
2022-01-20 17:47:42 -05:00
|
|
|
<!-- Options for Polymod -->
|
|
|
|
<section if="polymod">
|
|
|
|
<!-- Turns on additional debug logging. -->
|
|
|
|
<haxedef name="POLYMOD_DEBUG" value="true" if="debug" />
|
|
|
|
<!-- The file extension to use for script files. -->
|
|
|
|
<haxedef name="POLYMOD_SCRIPT_EXT" value=".hscript" />
|
|
|
|
<!-- Which asset library to use for scripts. -->
|
|
|
|
<haxedef name="POLYMOD_SCRIPT_LIBRARY" value="scripts" />
|
|
|
|
<!-- The base path from which scripts should be accessed. -->
|
|
|
|
<haxedef name="POLYMOD_ROOT_PATH" value="scripts/" />
|
|
|
|
<!-- Determines the subdirectory of the mod folder used for file appending. -->
|
|
|
|
<haxedef name="POLYMOD_APPEND_FOLDER" value="_append" />
|
|
|
|
<!-- Determines the subdirectory of the mod folder used for file merges. -->
|
|
|
|
<haxedef name="POLYMOD_MERGE_FOLDER" value="_merge" />
|
|
|
|
<!-- Determines the file in the mod folder used for metadata. -->
|
|
|
|
<haxedef name="POLYMOD_MOD_METADATA_FILE" value="_polymod_meta.json" />
|
|
|
|
<!-- Determines the file in the mod folder used for the icon. -->
|
|
|
|
<haxedef name="POLYMOD_MOD_ICON_FILE" value="_polymod_icon.png" />
|
|
|
|
</section>
|
2023-06-08 16:34:06 -04:00
|
|
|
</project>
|