From 341454b01e1242602d8b5604f8ddb49a627ed877 Mon Sep 17 00:00:00 2001 From: Frakits Date: Sat, 2 Aug 2025 14:20:46 +0300 Subject: [PATCH] LET THERE BE ``STATE REDIRECTS``!!!!!!!!!!!!!!!!!!!!!!!!!!!! --- assets/data/config/modpack.ini | 25 ------ assets/sounds/menu/checkboxChecked.mp3 | Bin 3480 -> 0 bytes assets/sounds/menu/checkboxChecked.ogg | Bin 6585 -> 0 bytes assets/sounds/menu/checkboxUnchecked.mp3 | Bin 3312 -> 0 bytes assets/sounds/menu/checkboxUnchecked.ogg | Bin 6684 -> 0 bytes assets/sounds/menu/warningMenu.mp3 | Bin 6573 -> 0 bytes assets/sounds/menu/warningMenu.ogg | Bin 9476 -> 0 bytes source/funkin/backend/system/Flags.hx | 104 +++++++++++++++------- source/funkin/backend/system/MainState.hx | 14 +++ source/funkin/backend/utils/CoolUtil.hx | 18 ++-- source/funkin/backend/utils/IniUtil.hx | 2 +- source/funkin/editors/ModConfigWarning.hx | 33 ++++--- source/funkin/game/GameOverSubstate.hx | 6 +- source/funkin/game/PlayState.hx | 12 +-- source/funkin/menus/PauseSubState.hx | 2 +- 15 files changed, 124 insertions(+), 92 deletions(-) delete mode 100644 assets/data/config/modpack.ini delete mode 100644 assets/sounds/menu/checkboxChecked.mp3 delete mode 100644 assets/sounds/menu/checkboxChecked.ogg delete mode 100644 assets/sounds/menu/checkboxUnchecked.mp3 delete mode 100644 assets/sounds/menu/checkboxUnchecked.ogg delete mode 100644 assets/sounds/menu/warningMenu.mp3 delete mode 100644 assets/sounds/menu/warningMenu.ogg diff --git a/assets/data/config/modpack.ini b/assets/data/config/modpack.ini deleted file mode 100644 index 313d86b2..00000000 --- a/assets/data/config/modpack.ini +++ /dev/null @@ -1,25 +0,0 @@ -[Common] -Name="baconeggandcheese" -Description="who gaf" -APIVersion="uhmmmm probs like 2" -DownloadedFrom="https://yourmom.org" -Dependencies=[ - "linkA", - "linkB", - "linkC" -] -Icon64="path/to/icon64.png" -Icon32="path/to/icon32.png" -Icon16="path/to/icon16.png" -Icon="path/to/icon.ico" - -[Flags] -UseNoteRendererV2=false -UseAway3D=false -UseDiscordRPCIntegration=true -UseLocalization=false -UseLegacyFlixelAnimateHitbox=false - -[Discord] -ClientID="1027994136193810442", -LogoKey="icon" \ No newline at end of file diff --git a/assets/sounds/menu/checkboxChecked.mp3 b/assets/sounds/menu/checkboxChecked.mp3 deleted file mode 100644 index 4d81b62ceb6abe32af06fb972223372481c1aba1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3480 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 diff --git a/assets/sounds/menu/checkboxChecked.ogg b/assets/sounds/menu/checkboxChecked.ogg deleted file mode 100644 index 014efd8093028d82404fea9e636ddd8789bf56bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6585 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 diff --git a/assets/sounds/menu/checkboxUnchecked.ogg b/assets/sounds/menu/checkboxUnchecked.ogg deleted file mode 100644 index 59a78de6d0733a2a06207ec35c924fce99e01e6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6684 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 diff --git a/assets/sounds/menu/warningMenu.mp3 b/assets/sounds/menu/warningMenu.mp3 deleted file mode 100644 index c82f0a1f21b5bfac16a31f88a0df0ea3e6af98cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6573 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 Cx-0Ym diff --git a/assets/sounds/menu/warningMenu.ogg b/assets/sounds/menu/warningMenu.ogg deleted file mode 100644 index cccaa12922132e59424469961d25260b24aac528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9476 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 diff --git a/source/funkin/backend/system/Flags.hx b/source/funkin/backend/system/Flags.hx index 7c9c4a39..4b77c0e7 100644 --- a/source/funkin/backend/system/Flags.hx +++ b/source/funkin/backend/system/Flags.hx @@ -35,7 +35,7 @@ class Flags { public static var MOD_DISCORD_LOGO_KEY:String = ""; public static var MOD_DISCORD_LOGO_TEXT:String = ""; - public static var MOD_REDIRECT_STATES:Map = []; + @:bypass public static var MOD_REDIRECT_STATES:Map = []; // -- Codename's Default Flags -- public static var CURRENT_API_VERSION:Int = 1; public static var COMMIT_NUMBER:Int = GitCommitMacro.commitNumber; @@ -125,9 +125,6 @@ class Flags { @:also(funkin.game.Character.FALLBACK_DEAD_CHARACTER) public static var DEFAULT_GAMEOVER_CHARACTER:String = "bf-dead"; - public static var DEFAULT_GAMEOVER_SONG:String = "gameOver"; - public static var DEFAULT_GAMEOVER_LOSS_SFX:String = "gameOverSFX"; - public static var DEFAULT_GAMEOVER_RETRY_SFX:String = "gameOverEnd"; public static var DEFAULT_CAM_ZOOM_INTERVAL:Int = 1; public static var DEFAULT_CAM_ZOOM_OFFSET:Float = 0; @@ -160,6 +157,11 @@ class Flags { public static var ICON_OFFSET:Float = 26; public static var ICON_LERP:Float = 0.33; + public static var DEFAULT_PREPARE_SPRITE:String = null; + public static var DEFAULT_READY_SPRITE:String = 'game/ready'; + public static var DEFAULT_SET_SPRITE:String = 'game/set'; + public static var DEFAULT_GO_SPRITE:String = 'game/go'; + public static var CAM_BOP_STRENGTH:Float = 0.015; public static var HUD_BOP_STRENGTH:Float = 0.03; public static var DEFAULT_CAM_ZOOM_LERP:Float = 0.05; @@ -202,36 +204,58 @@ class Flags { public static var URL_FNF_ITCH:String = "https://ninja-muffin24.itch.io/funkin"; /** - * Default editor sound paths + * Default audio paths */ - public static var DEFAULT_EDITOR_AUTOSAVE_SOUND = "editors/autosave"; - public static var DEFAULT_EDITOR_BUTTONCLICK_SOUND = "editors/buttonClick"; - public static var DEFAULT_EDITOR_CLICK_SOUND = "editors/click"; - public static var DEFAULT_EDITOR_COPY_SOUND = "editors/copy"; - public static var DEFAULT_EDITOR_CUT_SOUND = "editors/cut"; - public static var DEFAULT_EDITOR_DELETE_SOUND = "editors/delete"; - public static var DEFAULT_EDITOR_OFFSETDRAG_SOUND = "editors/offsetDrag"; - public static var DEFAULT_EDITOR_PASTE_SOUND = "editors/paste"; - public static var DEFAULT_EDITOR_REDO_SOUND = "editors/redo"; - public static var DEFAULT_EDITOR_SAVE_SOUND = "editors/save"; - public static var DEFAULT_EDITOR_TEXTREMOVE_SOUND = "editors/textRemove"; - public static var DEFAULT_EDITOR_TEXTTYPE_SOUND = "editors/textType"; - public static var DEFAULT_EDITOR_UNDO_SOUND = "editors/undo"; - public static var DEFAULT_EDITOR_WINDOWAPPEAR_SOUND = "editors/windowAppear"; - public static var DEFAULT_EDITOR_WINDOWCLOSE_SOUND = "editors/windowClose"; - public static var DEFAULT_EDITOR_DROPDOWNAPPEAR_SOUND = "editors/dropdownAppear"; - public static var DEFAULT_CHARTER_HITSOUND_SOUND = "editors/charter/hitsound"; - public static var DEFAULT_CHARTER_METRONOME_SOUND = "editors/charter/metronome"; - public static var DEFAULT_CHARTER_NOTEDELETE_SOUND = "editors/charter/noteDelete"; - public static var DEFAULT_CHARTER_NOTEPLACE_SOUND = "editors/charter/notePlace"; - public static var DEFAULT_CHARTER_SCROLL_SOUND = "editors/charter/scroll"; - public static var DEFAULT_CHARTER_SNAPPINGCHANGE_SOUND = "editors/charter/snappingChange"; - public static var DEFAULT_CHARTER_STRUMLOCK_SOUND = "editors/charter/strumLock"; - public static var DEFAULT_CHARTER_STRUMUNLOCK_SOUND = "editors/charter/strumUnlock"; - public static var DEFAULT_CHARTER_SUSTAINADD_SOUND = "editors/charter/sustainAdd"; - public static var DEFAULT_CHARTER_SUSTAINDELETE_SOUND = "editors/charter/sustainDelete"; - public static var DEFAULT_CHARACTER_GHOSTDISABLE_SOUND = "editors/character/ghostDisable"; - public static var DEFAULT_CHARACTER_GHOSTENABLE_SOUND = "editors/character/ghostEnable"; + public static var DEFAULT_MENU_MUSIC:String = "freakyMenu"; + public static var DEFAULT_PAUSE_MENU_MUSIC:String = "breakfast"; + public static var DEFAULT_GAMEOVER_MUSIC:String = "gameOver"; + + public static var DEFAULT_MISS1_SOUND:String = "missnote1"; + public static var DEFAULT_MISS2_SOUND:String = "missnote2"; + public static var DEFAULT_MISS3_SOUND:String = "missnote3"; + public static var DEFAULT_INTRO1_SOUND:String = "intro1"; + public static var DEFAULT_INTRO2_SOUND:String = "intro2"; + public static var DEFAULT_INTRO3_SOUND:String = "intro3"; + public static var DEFAULT_INTROGO_SOUND:String = "introGo"; + public static var DEFAULT_GAMEOVERSFX_SOUND:String = "gameOverSFX"; + public static var DEFAULT_GAMEOVEREND_SOUND:String = "gameOverEnd"; + + public static var DEFAULT_MENU_SCROLL_SOUND:String = "menu/scroll"; + public static var DEFAULT_MENU_CONFIRM_SOUND:String = "menu/confirm"; + public static var DEFAULT_MENU_CANCEL_SOUND:String = "menu/cancel"; + public static var DEFAULT_MENU_VOLUME_SOUND:String = "menu/volume"; + + public static var DEFAULT_EDITOR_CHECKBOXCHECKED_SOUND:String = "editors/checkboxChecked"; + public static var DEFAULT_EDITOR_CHECKBOXUNCHECKED_SOUND:String = "editors/checkboxUnchecked"; + public static var DEFAULT_EDITOR_WARNING_SOUND:String = "editors/warningMenu"; + public static var DEFAULT_EDITOR_AUTOSAVE_SOUND:String = "editors/autosave"; + public static var DEFAULT_EDITOR_BUTTONCLICK_SOUND:String = "editors/buttonClick"; + public static var DEFAULT_EDITOR_CLICK_SOUND:String = "editors/click"; + public static var DEFAULT_EDITOR_COPY_SOUND:String = "editors/copy"; + public static var DEFAULT_EDITOR_CUT_SOUND:String = "editors/cut"; + public static var DEFAULT_EDITOR_DELETE_SOUND:String = "editors/delete"; + public static var DEFAULT_EDITOR_OFFSETDRAG_SOUND:String = "editors/offsetDrag"; + public static var DEFAULT_EDITOR_PASTE_SOUND:String = "editors/paste"; + public static var DEFAULT_EDITOR_REDO_SOUND:String = "editors/redo"; + public static var DEFAULT_EDITOR_SAVE_SOUND:String = "editors/save"; + public static var DEFAULT_EDITOR_TEXTREMOVE_SOUND:String= "editors/textRemove"; + public static var DEFAULT_EDITOR_TEXTTYPE_SOUND:String = "editors/textType"; + public static var DEFAULT_EDITOR_UNDO_SOUND:String = "editors/undo"; + public static var DEFAULT_EDITOR_WINDOWAPPEAR_SOUND:String = "editors/windowAppear"; + public static var DEFAULT_EDITOR_WINDOWCLOSE_SOUND:String = "editors/windowClose"; + public static var DEFAULT_EDITOR_DROPDOWNAPPEAR_SOUND:String = "editors/dropdownAppear"; + public static var DEFAULT_CHARTER_HITSOUND_SOUND:String = "editors/charter/hitsound"; + public static var DEFAULT_CHARTER_METRONOME_SOUND:String = "editors/charter/metronome"; + public static var DEFAULT_CHARTER_NOTEDELETE_SOUND:String = "editors/charter/noteDelete"; + public static var DEFAULT_CHARTER_NOTEPLACE_SOUND:String = "editors/charter/notePlace"; + public static var DEFAULT_CHARTER_SCROLL_SOUND:String = "editors/charter/scroll"; + public static var DEFAULT_CHARTER_SNAPPINGCHANGE_SOUND:String = "editors/charter/snappingChange"; + public static var DEFAULT_CHARTER_STRUMLOCK_SOUND:String = "editors/charter/strumLock"; + public static var DEFAULT_CHARTER_STRUMUNLOCK_SOUND:String = "editors/charter/strumUnlock"; + public static var DEFAULT_CHARTER_SUSTAINADD_SOUND:String = "editors/charter/sustainAdd"; + public static var DEFAULT_CHARTER_SUSTAINDELETE_SOUND:String = "editors/charter/sustainDelete"; + public static var DEFAULT_CHARACTER_GHOSTDISABLE_SOUND:String = "editors/character/ghostDisable"; + public static var DEFAULT_CHARACTER_GHOSTENABLE_SOUND:String = "editors/character/ghostEnable"; public static var DEFAULT_GLSL_VERSION:String = "120"; @:also(funkin.backend.utils.HttpUtil.userAgent) @@ -244,9 +268,20 @@ class Flags { @:bypass public static var customFlags:Map = []; public static function loadFromData(flags:Map, data:String) { + trace(data); + if (!(data.length > 0)) return; var res = IniUtil.parseString(data); - for (section in res) for (key => value in section) flags[key] = value; + trace(res); + if (res.exists("Common")) for (key => value in res.get("Common")) flags["MOD_" + key] = value; + if (res.exists("Discord")) for (key => value in res.get("Discord")) flags["MOD_DISCORD_" + key] = value; + if (res.exists("Flags")) for (key => value in res.get("Flags")) flags[key] = value; + + if (res.exists("StateRedirects")) for (key => value in res.get("StateRedirects")) + if (!Flags.MOD_REDIRECT_STATES.exists(key)) Flags.MOD_REDIRECT_STATES.set(key, value); + if (res.exists("StateRedirects.force")) for (key => value in res.get("StateRedirects.force")) + Flags.MOD_REDIRECT_STATES.set(key, value); + trace(flags); } public static function loadFromDatas(datas:Array) { @@ -290,6 +325,7 @@ class Flags { if (l.exists(Paths.ini("config/modpack"), AssetType.TEXT)) flagsTxt = l.getAsset(Paths.ini("config/modpack"), AssetType.TEXT); if (cast(l, IModsAssetLibrary).modName == "assets") continue; + if (cast(l, IModsAssetLibrary).modName == "source") continue; if (cast(l, IModsAssetLibrary).modName == ModsFolder.currentModFolder) { var flags:Map = []; diff --git a/source/funkin/backend/system/MainState.hx b/source/funkin/backend/system/MainState.hx index 1788db20..e41df56e 100644 --- a/source/funkin/backend/system/MainState.hx +++ b/source/funkin/backend/system/MainState.hx @@ -135,6 +135,20 @@ class MainState extends FlxState { } } + FlxG.signals.preStateSwitch.add(() -> { + var stateName = Type.getClassName(Type.getClass(@:privateAccess FlxG.game._requestedState)); + stateName = stateName.substring(stateName.lastIndexOf(".") + 1); + trace(stateName); + if (Flags.MOD_REDIRECT_STATES.exists(stateName)) { + trace("WE FUCKING GOT IT!"); + @:privateAccess { + var classFromString = Type.resolveClass(Flags.MOD_REDIRECT_STATES.get(stateName)); + if (classFromString != null) FlxG.game._requestedState = Type.createInstance(classFromString, []); + else FlxG.game._requestedState = new funkin.backend.scripting.ModState(Flags.MOD_REDIRECT_STATES.get(stateName)); + } + } + }); + if (!Flags.DISABLE_WARNING_SCREEN) FlxG.switchState(new funkin.menus.WarningState()); else FlxG.switchState(new TitleState()); } diff --git a/source/funkin/backend/utils/CoolUtil.hx b/source/funkin/backend/utils/CoolUtil.hx index 175e0eb0..f187f4d8 100644 --- a/source/funkin/backend/utils/CoolUtil.hx +++ b/source/funkin/backend/utils/CoolUtil.hx @@ -454,7 +454,7 @@ final class CoolUtil @:noUsing public static function playMenuSong(fadeIn:Bool = false) { if (FlxG.sound.music == null || !FlxG.sound.music.playing) { - playMusic(Paths.music('freakyMenu'), true, fadeIn ? 0 : 1, true, 102); + playMusic(Paths.music(Flags.DEFAULT_MENU_MUSIC), true, fadeIn ? 0 : 1, true, 102); if (fadeIn) FlxG.sound.music.fadeIn(4, 0, 0.7); } @@ -520,14 +520,14 @@ final class CoolUtil * @param volume At which volume it should play */ @:noUsing public static inline function playMenuSFX(menuSFX:CoolSfx = SCROLL, volume:Float = 1):FlxSound { - return FlxG.sound.play(Paths.sound('menu/' + switch(menuSFX) { - case CONFIRM: 'confirm'; - case CANCEL: 'cancel'; - case SCROLL: 'scroll'; - case CHECKED: 'checkboxChecked'; - case UNCHECKED: 'checkboxUnchecked'; - case WARNING: 'warningMenu'; - default: 'scroll'; + return FlxG.sound.play(Paths.sound(switch(menuSFX) { + case CONFIRM: Flags.DEFAULT_MENU_CONFIRM_SOUND; + case CANCEL: Flags.DEFAULT_MENU_CANCEL_SOUND; + case SCROLL: Flags.DEFAULT_MENU_SCROLL_SOUND; + case CHECKED: Flags.DEFAULT_EDITOR_CHECKBOXCHECKED_SOUND; + case UNCHECKED: Flags.DEFAULT_EDITOR_CHECKBOXUNCHECKED_SOUND; + case WARNING: Flags.DEFAULT_EDITOR_WARNING_SOUND; + default: Flags.DEFAULT_MENU_SCROLL_SOUND; }), volume * Options.volumeSFX); } diff --git a/source/funkin/backend/utils/IniUtil.hx b/source/funkin/backend/utils/IniUtil.hx index 22cecee4..39187f2d 100644 --- a/source/funkin/backend/utils/IniUtil.hx +++ b/source/funkin/backend/utils/IniUtil.hx @@ -13,7 +13,7 @@ class IniUtil { public static function parseStringToMap(map:Map>, data:String) { var section:Map = null; - var regexSec = ~/\\[(.+)\\]/g, regexVal = ~/(.+)=(.+)/g, quote = ~/[\\'"](.+)[\\'"]/g, iln = 0; + var regexSec = ~/^\[(.+)\]/g, regexVal = ~/^([^#;].+)=(.+)/g, quote = ~/[\\'"](.+)[\\'"]/g, iln = 0; do { var line = data.substring(iln, ((iln = data.indexOf('\n', iln) + 1) == 0 ? data.length : iln - 1)); if (regexSec.match(line)) { diff --git a/source/funkin/editors/ModConfigWarning.hx b/source/funkin/editors/ModConfigWarning.hx index d177c9c8..4caf1b48 100644 --- a/source/funkin/editors/ModConfigWarning.hx +++ b/source/funkin/editors/ModConfigWarning.hx @@ -10,34 +10,41 @@ class ModConfigWarning extends UIState { var goToState:Class; public static inline var defaultModConfigText = -'[Common] -MOD_NAME="YOUR MOD NAME HERE" -MOD_DESCRIPTION="YOUR MOD DESCRIPTION HERE" -MOD_AUTHOR="YOU/YOUR TEAM HERE" -MOD_VERSION="YOUR MOD\'S VERSION HERE" +'[Common] # This section applies the \'MOD_\' prefix to the flags so you don\'t have to. +NAME="YOUR MOD NAME HERE" +DESCRIPTION="YOUR MOD DESCRIPTION HERE" +AUTHOR="YOU/YOUR TEAM HERE" +VERSION="YOUR MOD\'S VERSION HERE" # DO NOT EDIT!! this is used to check for version compatibility! -MOD_API_VERSION=1 +API_VERSION=1 -MOD_DOWNLOAD_LINK="YOUR MOD PAGE LINK HERE" +DOWNLOAD_LINK="YOUR MOD PAGE LINK HERE" # Not supported yet ;MOD_ICON64="path/to/icon64.png" ;MOD_ICON32="path/to/icon32.png" ;MOD_ICON16="path/to/icon16.png" -MOD_ICON="path/to/icon.png" +ICON="path/to/icon.png" -[Flags] +[Flags] # This section doesn\'t apply any prefix. DISABLE_WARNING_SCREEN=true # Set this to false if you want to bring back the warning state (prior to 1.0.0) # NOTE: Beta warning state has been renamed from BetaWarningState.hx to WarningState.hx DISABLE_LANGUAGES=true # Some people might not translate their mods, but if you do then you may set this to false -[Discord] -MOD_DISCORD_CLIENT_ID="" -MOD_DISCORD_LOGO_KEY="" -MOD_DISCORD_LOGO_TEXT=""'; +[Discord] # This section applies the \'MOD_DISCORD_\' prefix to the flags so you don\'t have to. +CLIENT_ID="" +LOGO_KEY="" +LOGO_TEXT="" + +[StateRedirects] # This section is used for state redirecting, see examples below. +;StoryMenuState="funkin.menus.FreeplayState" +;FreeplayState="scriptedFreeplayState" + +[StateRedirects.force] # Use this if you want to override redirects set by subsequent addons/mods +'; public function new(library:ModsFolderLibrary, ?goToState:Class) { super(); diff --git a/source/funkin/game/GameOverSubstate.hx b/source/funkin/game/GameOverSubstate.hx index 706b798c..a98c0640 100644 --- a/source/funkin/game/GameOverSubstate.hx +++ b/source/funkin/game/GameOverSubstate.hx @@ -44,9 +44,9 @@ class GameOverSubstate extends MusicBeatSubstate this.y = y; this.player = player; this.characterName = character != null ? character : Flags.DEFAULT_GAMEOVER_CHARACTER; - this.gameOverSong = gameOverSong != null ? gameOverSong : Flags.DEFAULT_GAMEOVER_SONG; - this.lossSFXName = lossSFX != null ? lossSFX : Flags.DEFAULT_GAMEOVER_LOSS_SFX; - this.retrySFX = retrySFX != null ? retrySFX : Flags.DEFAULT_GAMEOVER_RETRY_SFX; + this.gameOverSong = gameOverSong != null ? gameOverSong : Flags.DEFAULT_GAMEOVER_MUSIC; + this.lossSFXName = lossSFX != null ? lossSFX : Flags.DEFAULT_GAMEOVERSFX_SOUND; + this.retrySFX = retrySFX != null ? retrySFX : Flags.DEFAULT_GAMEOVEREND_SOUND; } public override function create() diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 26e196d1..480f9cd8 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -99,15 +99,15 @@ class PlayState extends MusicBeatState /** * Game Over Song. (assets/music/gameOver.ogg) */ - public var gameOverSong:String = Flags.DEFAULT_GAMEOVER_SONG; + public var gameOverSong:String = Flags.DEFAULT_GAMEOVER_MUSIC; /** * Game Over Song. (assets/sounds/gameOverSFX.ogg) */ - public var lossSFX:String = Flags.DEFAULT_GAMEOVER_LOSS_SFX; + public var lossSFX:String = Flags.DEFAULT_GAMEOVERSFX_SOUND; /** * Game Over End SFX, used when retrying. (assets/sounds/gameOverEnd.ogg) */ - public var retrySFX:String = Flags.DEFAULT_GAMEOVER_RETRY_SFX; + public var retrySFX:String = Flags.DEFAULT_GAMEOVEREND_SOUND; /** * Current Stage. @@ -461,11 +461,11 @@ class PlayState extends MusicBeatState /** * Array of sprites for the intro. */ - public var introSprites:Array = [null, 'game/ready', "game/set", "game/go"]; + public var introSprites:Array = [Flags.DEFAULT_PREPARE_SPRITE, Flags.DEFAULT_READY_SPRITE, Flags.DEFAULT_SET_SPRITE, Flags.DEFAULT_GO_SPRITE]; /** * Array of sounds for the intro. */ - public var introSounds:Array = ['intro3', 'intro2', "intro1", "introGo"]; + public var introSounds:Array = [Flags.DEFAULT_INTRO1_SOUND, Flags.DEFAULT_INTRO2_SOUND, Flags.DEFAULT_INTRO3_SOUND, Flags.DEFAULT_INTROGO_SOUND]; /** * Whenever the game is paused or not. @@ -1765,7 +1765,7 @@ class PlayState extends MusicBeatState var directionID:Null = note == null ? direction : note.strumID; if (playerID == null || directionID == null || playerID == -1) return; - var event:NoteMissEvent = gameAndCharsEvent("onPlayerMiss", EventManager.get(NoteMissEvent).recycle(note, -10, 1, muteVocalsOnMiss, note != null ? -0.0475 : -0.04, Paths.soundRandom('missnote', 1, 3), FlxG.random.float(0.1, 0.2), note == null, combo > 5, "sad", true, true, "miss", strumLines.members[playerID].characters, playerID, note != null ? note.noteType : null, directionID, 0)); + var event:NoteMissEvent = gameAndCharsEvent("onPlayerMiss", EventManager.get(NoteMissEvent).recycle(note, -10, 1, muteVocalsOnMiss, note != null ? -0.0475 : -0.04, Paths.sound(FlxG.random.getObject([Flags.DEFAULT_MISS1_SOUND, Flags.DEFAULT_MISS2_SOUND, Flags.DEFAULT_MISS3_SOUND])), FlxG.random.float(0.1, 0.2), note == null, combo > 5, "sad", true, true, "miss", strumLines.members[playerID].characters, playerID, note != null ? note.noteType : null, directionID, 0)); strumLine.onMiss.dispatch(event); if (event.cancelled) return; diff --git a/source/funkin/menus/PauseSubState.hx b/source/funkin/menus/PauseSubState.hx index 2f054d9f..259dc56c 100644 --- a/source/funkin/menus/PauseSubState.hx +++ b/source/funkin/menus/PauseSubState.hx @@ -60,7 +60,7 @@ class PauseSubState extends MusicBeatSubstate pauseScript.setParent(this); pauseScript.load(); - var event = EventManager.get(PauseCreationEvent).recycle('breakfast', menuItems); + var event = EventManager.get(PauseCreationEvent).recycle(Flags.DEFAULT_PAUSE_MENU_MUSIC, menuItems); pauseScript.call('create', [event]); menuItems = event.options;