From 07c872c77547427a21f8c0b966c489d808cc869b Mon Sep 17 00:00:00 2001 From: Lasercar Date: Wed, 26 Feb 2025 01:02:42 +1000 Subject: [PATCH 01/38] A fix for a thing --- source/funkin/ui/mainmenu/MainMenuState.hx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/funkin/ui/mainmenu/MainMenuState.hx b/source/funkin/ui/mainmenu/MainMenuState.hx index 13a7c7395..fbe2f5858 100644 --- a/source/funkin/ui/mainmenu/MainMenuState.hx +++ b/source/funkin/ui/mainmenu/MainMenuState.hx @@ -105,6 +105,7 @@ class MainMenuState extends MusicBeatState createMenuItem('freeplay', 'mainmenu/freeplay', function() { persistentDraw = true; persistentUpdate = false; + rememberedSelectedIndex = menuItems.selectedIndex; // Freeplay has its own custom transition FlxTransitionableState.skipNextTransIn = true; FlxTransitionableState.skipNextTransOut = true; From ea93ec90cb5c5dbd4a5bea64114af58c70cb43f4 Mon Sep 17 00:00:00 2001 From: Lasercar <64717068+Lasercar@users.noreply.github.com> Date: Sat, 15 Mar 2025 12:32:04 +1000 Subject: [PATCH 02/38] Fix strumline offset when downscroll --- source/funkin/play/PlayState.hx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx index fd35690a7..fc7d740d5 100644 --- a/source/funkin/play/PlayState.hx +++ b/source/funkin/play/PlayState.hx @@ -1795,13 +1795,13 @@ class PlayState extends MusicBeatSubState // Position the player strumline on the right half of the screen playerStrumline.x = FlxG.width / 2 + Constants.STRUMLINE_X_OFFSET; // Classic style // playerStrumline.x = FlxG.width - playerStrumline.width - Constants.STRUMLINE_X_OFFSET; // Centered style - playerStrumline.y = Preferences.downscroll ? FlxG.height - playerStrumline.height - Constants.STRUMLINE_Y_OFFSET : Constants.STRUMLINE_Y_OFFSET; + playerStrumline.y = Preferences.downscroll ? FlxG.height - playerStrumline.height - Constants.STRUMLINE_Y_OFFSET - noteStyle.getStrumlineOffsets()[1] : Constants.STRUMLINE_Y_OFFSET; playerStrumline.zIndex = 1001; playerStrumline.cameras = [camHUD]; // Position the opponent strumline on the left half of the screen opponentStrumline.x = Constants.STRUMLINE_X_OFFSET; - opponentStrumline.y = Preferences.downscroll ? FlxG.height - opponentStrumline.height - Constants.STRUMLINE_Y_OFFSET : Constants.STRUMLINE_Y_OFFSET; + opponentStrumline.y = Preferences.downscroll ? FlxG.height - opponentStrumline.height - Constants.STRUMLINE_Y_OFFSET - noteStyle.getStrumlineOffsets()[1] : Constants.STRUMLINE_Y_OFFSET; opponentStrumline.zIndex = 1000; opponentStrumline.cameras = [camHUD]; From 982910367193f5d842139f2521071de318473a85 Mon Sep 17 00:00:00 2001 From: anysad Date: Mon, 5 Aug 2024 13:29:42 +0300 Subject: [PATCH 03/38] Fix Animation Editor not saving the file name --- source/funkin/ui/debug/anim/DebugBoundingState.hx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/funkin/ui/debug/anim/DebugBoundingState.hx b/source/funkin/ui/debug/anim/DebugBoundingState.hx index eae03ce2a..815695442 100644 --- a/source/funkin/ui/debug/anim/DebugBoundingState.hx +++ b/source/funkin/ui/debug/anim/DebugBoundingState.hx @@ -576,7 +576,7 @@ class DebugBoundingState extends FlxState _file.addEventListener(Event.COMPLETE, onSaveComplete); _file.addEventListener(Event.CANCEL, onSaveCancel); _file.addEventListener(IOErrorEvent.IO_ERROR, onSaveError); - _file.save(saveString,); + _file.save(saveString, fileName); } } From bf36a86877e4855f74f303083e79f495e4a33e16 Mon Sep 17 00:00:00 2001 From: Hundrec Date: Tue, 18 Mar 2025 04:45:44 -0600 Subject: [PATCH 04/38] Remember selection when exiting to Title Screen --- source/funkin/ui/mainmenu/MainMenuState.hx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/funkin/ui/mainmenu/MainMenuState.hx b/source/funkin/ui/mainmenu/MainMenuState.hx index fbe2f5858..19d1a1f1f 100644 --- a/source/funkin/ui/mainmenu/MainMenuState.hx +++ b/source/funkin/ui/mainmenu/MainMenuState.hx @@ -466,6 +466,7 @@ class MainMenuState extends MusicBeatState if (controls.BACK && menuItems.enabled && !menuItems.busy) { + rememberedSelectedIndex = menuItems.selectedIndex; FlxG.switchState(() -> new TitleState()); FunkinSound.playOnce(Paths.sound('cancelMenu')); } From afbb3359938f020707efd92a17419e3658528ea5 Mon Sep 17 00:00:00 2001 From: Lasercar <64717068+Lasercar@users.noreply.github.com> Date: Sun, 6 Apr 2025 16:24:53 +1000 Subject: [PATCH 05/38] Destroy the volume plugin --- source/funkin/util/plugins/VolumePlugin.hx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/source/funkin/util/plugins/VolumePlugin.hx b/source/funkin/util/plugins/VolumePlugin.hx index 5dbe60abf..9fdb65558 100644 --- a/source/funkin/util/plugins/VolumePlugin.hx +++ b/source/funkin/util/plugins/VolumePlugin.hx @@ -31,4 +31,11 @@ class VolumePlugin extends FlxBasic else if (PlayerSettings.player1.controls.VOLUME_DOWN) FlxG.sound.changeVolume(-0.1); } } + + override public function destroy():Void + { + if (FlxG.plugins.list.contains(this)) FlxG.plugins.remove(this); + + super.destroy(); + } } From 0101bae7ecc800e26efd9590fdfa1305039b4461 Mon Sep 17 00:00:00 2001 From: VioletSnowLeopard Date: Fri, 21 Mar 2025 15:02:34 -0400 Subject: [PATCH 06/38] convert decimal chance to percent --- source/funkin/play/PlayState.hx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx index 50adf81c5..3aab67998 100644 --- a/source/funkin/play/PlayState.hx +++ b/source/funkin/play/PlayState.hx @@ -948,7 +948,7 @@ class PlayState extends MusicBeatSubState // Attempt to pause the game. if ((controls.PAUSE || androidPause) && isInCountdown && mayPauseGame && !justUnpaused) { - var event = new PauseScriptEvent(FlxG.random.bool(1 / 1000)); + var event = new PauseScriptEvent(FlxG.random.bool((1 / 1000) * 100)); dispatchEvent(event); From f6ac4cad43f4834a86a3fc156d6d39eca2c47c7e Mon Sep 17 00:00:00 2001 From: Lasercar <64717068+Lasercar@users.noreply.github.com> Date: Wed, 30 Apr 2025 23:58:09 +1000 Subject: [PATCH 07/38] Whoops, missed this one --- source/funkin/ui/freeplay/FreeplayState.hx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index 1da2e6b0a..e459fe116 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -1765,7 +1765,8 @@ class FreeplayState extends MusicBeatSubState var songScore:Null = Save.instance.getSongScore(daSong.data.id, currentDifficulty, currentVariation); intendedScore = songScore?.score ?? 0; - intendedCompletion = songScore == null ? 0.0 : ((songScore.tallies.sick + songScore.tallies.good) / songScore.tallies.totalNotes); + intendedCompletion = songScore == null ? 0.0 : ((songScore.tallies.sick + + songScore.tallies.good - songScore.tallies.missed) / songScore.tallies.totalNotes); rememberedDifficulty = currentDifficulty; grpCapsules.members[curSelected].refreshDisplay(); } From a83a4a599c2e407832ef9bbe47bb8b8c07ce712a Mon Sep 17 00:00:00 2001 From: Hyper_ <40342021+NotHyper-474@users.noreply.github.com> Date: Mon, 28 Apr 2025 01:14:35 -0300 Subject: [PATCH 08/38] fix: Null-check MedalList's internal map --- source/funkin/api/newgrounds/Medals.hx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/funkin/api/newgrounds/Medals.hx b/source/funkin/api/newgrounds/Medals.hx index 984362473..0559a004f 100644 --- a/source/funkin/api/newgrounds/Medals.hx +++ b/source/funkin/api/newgrounds/Medals.hx @@ -44,7 +44,8 @@ class Medals if (NewgroundsClient.instance.isLoggedIn()) { var medalList = NewgroundsClient.instance.medals; - if (medalList == null) return; + @:privateAccess + if (medalList == null || medalList._map == null) return; var medalData:Null = medalList.get(medal.getId()); @:privateAccess From c67085a46a3a5936e6bc594baf8ef3a380ca48c2 Mon Sep 17 00:00:00 2001 From: unknown <47027981+ACrazyTown@users.noreply.github.com> Date: Sun, 6 Apr 2025 00:18:19 +0200 Subject: [PATCH 09/38] Fix memory overflow in crash log --- source/funkin/util/MemoryUtil.hx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/funkin/util/MemoryUtil.hx b/source/funkin/util/MemoryUtil.hx index 18fd41472..10b38c03a 100644 --- a/source/funkin/util/MemoryUtil.hx +++ b/source/funkin/util/MemoryUtil.hx @@ -17,10 +17,10 @@ class MemoryUtil { #if cpp var result:String = 'HXCPP-Immix:'; - result += '\n- Memory Used: ${cpp.vm.Gc.memInfo(cpp.vm.Gc.MEM_INFO_USAGE)} bytes'; - result += '\n- Memory Reserved: ${cpp.vm.Gc.memInfo(cpp.vm.Gc.MEM_INFO_RESERVED)} bytes'; - result += '\n- Memory Current Pool: ${cpp.vm.Gc.memInfo(cpp.vm.Gc.MEM_INFO_CURRENT)} bytes'; - result += '\n- Memory Large Pool: ${cpp.vm.Gc.memInfo(cpp.vm.Gc.MEM_INFO_LARGE)} bytes'; + result += '\n- Memory Used: ${cpp.vm.Gc.memInfo64(cpp.vm.Gc.MEM_INFO_USAGE)} bytes'; + result += '\n- Memory Reserved: ${cpp.vm.Gc.memInfo64(cpp.vm.Gc.MEM_INFO_RESERVED)} bytes'; + result += '\n- Memory Current Pool: ${cpp.vm.Gc.memInfo64(cpp.vm.Gc.MEM_INFO_CURRENT)} bytes'; + result += '\n- Memory Large Pool: ${cpp.vm.Gc.memInfo64(cpp.vm.Gc.MEM_INFO_LARGE)} bytes'; result += '\n- HXCPP Debugger: ${#if HXCPP_DEBUGGER 'Enabled' #else 'Disabled' #end}'; result += '\n- HXCPP Exp Generational Mode: ${#if HXCPP_GC_GENERATIONAL 'Enabled' #else 'Disabled' #end}'; result += '\n- HXCPP Exp Moving GC: ${#if HXCPP_GC_MOVING 'Enabled' #else 'Disabled' #end}'; From 142ea6db0c53f6f9288109604702c2e7e5bc6f18 Mon Sep 17 00:00:00 2001 From: Hyper_ <40342021+NotHyper-474@users.noreply.github.com> Date: Tue, 4 Mar 2025 17:37:59 -0300 Subject: [PATCH 10/38] fix: Force UI Camera resize --- source/funkin/ui/debug/charting/ChartEditorState.hx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/funkin/ui/debug/charting/ChartEditorState.hx b/source/funkin/ui/debug/charting/ChartEditorState.hx index 8e7a14420..91c18a81e 100644 --- a/source/funkin/ui/debug/charting/ChartEditorState.hx +++ b/source/funkin/ui/debug/charting/ChartEditorState.hx @@ -5838,6 +5838,7 @@ class ChartEditorState extends UIState // UIState derives from MusicBeatState { uiCamera.revive(); FlxG.cameras.reset(uiCamera); + uiCamera.onResize(); add(this.root); } From 651298e908dc29c99d24b83a5f066581af71c9b9 Mon Sep 17 00:00:00 2001 From: EliteMasterEric Date: Thu, 1 May 2025 21:37:52 -0400 Subject: [PATCH 11/38] Update assets submodule --- assets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets b/assets index ac932c19f..f87255d4b 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit ac932c19f9f8b4e2ee627bdfe72b51636e9d21ef +Subproject commit f87255d4bcb7a7ce0dc920aefc36b98a96115c75 From 8b9775d91f4f2b5896a637a014b4be770319968e Mon Sep 17 00:00:00 2001 From: kade-github <26305836+Kade-github@users.noreply.github.com> Date: Thu, 1 May 2025 18:26:01 -0700 Subject: [PATCH 12/38] the falsening by VioletSnowLeopard --- source/funkin/ui/freeplay/FreeplayState.hx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index 6dcbf2034..a371acb6d 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -501,13 +501,13 @@ class FreeplayState extends MusicBeatSubState switch (str) { case 'fav': - generateSongList({filterType: FAVORITE}, true); + generateSongList({filterType: FAVORITE}, true, false); case 'ALL': - generateSongList(null, true); + generateSongList(null, true, false); case '#': - generateSongList({filterType: REGEXP, filterData: '0-9'}, true); + generateSongList({filterType: REGEXP, filterData: '0-9'}, true, false); default: - generateSongList({filterType: REGEXP, filterData: str}, true); + generateSongList({filterType: REGEXP, filterData: str}, true, false); } // If the current song is still in the list (aka not null?), we'll land on it From 62510c24036095f0c531747efacd190c16df6a66 Mon Sep 17 00:00:00 2001 From: JackXson-Real <32755192+JackXson-Real@users.noreply.github.com> Date: Thu, 1 May 2025 22:52:35 -0400 Subject: [PATCH 13/38] Bump Repo Version to 0.6.4 --- .github/ISSUE_TEMPLATE/bug.yml | 2 +- .github/ISSUE_TEMPLATE/charting.yml | 2 +- .github/ISSUE_TEMPLATE/compiling.yml | 2 +- .github/ISSUE_TEMPLATE/crash.yml | 2 +- docs/CONTRIBUTING.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 387d8b128..08264d48d 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -45,7 +45,7 @@ body: attributes: label: Version description: Which version are you playing on? The game version is in the bottom left corner of the main menu. - placeholder: ex. 0.6.3 + placeholder: ex. 0.6.4 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/charting.yml b/.github/ISSUE_TEMPLATE/charting.yml index 61bfd25c4..383bdafed 100644 --- a/.github/ISSUE_TEMPLATE/charting.yml +++ b/.github/ISSUE_TEMPLATE/charting.yml @@ -46,7 +46,7 @@ body: attributes: label: Version description: Which version are you playing on? The game version is in the bottom left corner of the main menu. - placeholder: ex. 0.6.3 + placeholder: ex. 0.6.4 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/compiling.yml b/.github/ISSUE_TEMPLATE/compiling.yml index 8215ddd7b..58c8b526d 100644 --- a/.github/ISSUE_TEMPLATE/compiling.yml +++ b/.github/ISSUE_TEMPLATE/compiling.yml @@ -34,7 +34,7 @@ body: attributes: label: Version description: Which version are you compiling? The game version is in the bottom left corner of the main menu or in the project.hxp file. - placeholder: ex. 0.6.3 + placeholder: ex. 0.6.4 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/crash.yml b/.github/ISSUE_TEMPLATE/crash.yml index 459ed92a3..073465f9e 100644 --- a/.github/ISSUE_TEMPLATE/crash.yml +++ b/.github/ISSUE_TEMPLATE/crash.yml @@ -46,7 +46,7 @@ body: attributes: label: Version description: Which version are you playing on? The game version is in the bottom left corner of the main menu. - placeholder: ex. 0.6.3 + placeholder: ex. 0.6.4 validations: required: true diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 9240dd2ed..df0efcaae 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -60,7 +60,7 @@ This section provides guidelines to follow when [opening an issue](https://githu ## Requirements Make sure you're playing: -- the latest version of the game (currently v0.6.3) +- the latest version of the game (currently v0.6.4) - without any mods - on [Newgrounds](https://www.newgrounds.com/portal/view/770371) or downloaded from [itch.io](https://ninja-muffin24.itch.io/funkin) From dc2acac152ded7f6dcb62e9bd0470d03ec51b509 Mon Sep 17 00:00:00 2001 From: Hundrec Date: Thu, 1 May 2025 21:23:55 -0600 Subject: [PATCH 14/38] no more negative clear percent shenanigans "a thousand curses upon you for not testing your prs before making them /j" - AbnormalPoof Co-Authored-By: Hyper_ <40342021+NotHyper-474@users.noreply.github.com> --- source/funkin/ui/freeplay/FreeplayState.hx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index 53c9d48aa..894867188 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -1765,8 +1765,8 @@ class FreeplayState extends MusicBeatSubState var songScore:Null = Save.instance.getSongScore(daSong.data.id, currentDifficulty, currentVariation); intendedScore = songScore?.score ?? 0; - intendedCompletion = songScore == null ? 0.0 : ((songScore.tallies.sick + - songScore.tallies.good - songScore.tallies.missed) / songScore.tallies.totalNotes); + intendedCompletion = songScore == null ? 0.0 : Math.max(0, ((songScore.tallies.sick + + songScore.tallies.good - songScore.tallies.missed) / songScore.tallies.totalNotes)); rememberedDifficulty = currentDifficulty; grpCapsules.members[curSelected].refreshDisplay((prepForNewRank == true) ? false : true); } From d9fcaf0e6382b121f7773d23f4864364a1e6a577 Mon Sep 17 00:00:00 2001 From: Hundrec Date: Fri, 2 May 2025 05:02:29 -0600 Subject: [PATCH 15/38] Restore Lasercar's changes Dropped them somewhere whoopsie Co-Authored-By: Lasercar <64717068+Lasercar@users.noreply.github.com> --- source/funkin/play/PlayState.hx | 4 ++-- source/funkin/ui/freeplay/FreeplayScore.hx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx index 3aab67998..5e3630253 100644 --- a/source/funkin/play/PlayState.hx +++ b/source/funkin/play/PlayState.hx @@ -1138,7 +1138,7 @@ class PlayState extends MusicBeatSubState if (!isMinimalMode) { if (iconP1 != null) iconP1.updatePosition(); - if (iconP1 != null) iconP2.updatePosition(); + if (iconP2 != null) iconP2.updatePosition(); } // Transition to the game over substate. @@ -2729,7 +2729,7 @@ class PlayState extends MusicBeatSubState #end // 9: Toggle the old icon. - if (FlxG.keys.justPressed.NINE) iconP1.toggleOldIcon(); + if (FlxG.keys.justPressed.NINE && iconP1 != null) iconP1.toggleOldIcon(); #if FEATURE_DEBUG_FUNCTIONS // PAGEUP: Skip forward two sections. diff --git a/source/funkin/ui/freeplay/FreeplayScore.hx b/source/funkin/ui/freeplay/FreeplayScore.hx index 8c0911a70..0725bf1fa 100644 --- a/source/funkin/ui/freeplay/FreeplayScore.hx +++ b/source/funkin/ui/freeplay/FreeplayScore.hx @@ -35,7 +35,7 @@ class FreeplayScore extends FlxTypedSpriteGroup loopNum--; } - while (loopNum > 0) + while (loopNum >= 0) { group.members[loopNum].digit = 0; loopNum--; From 34bb2011042603f7338c0949543b2fffd813a699 Mon Sep 17 00:00:00 2001 From: VioletSnowLeopard Date: Fri, 2 May 2025 11:02:29 -0400 Subject: [PATCH 16/38] Fix the changelog again --- CHANGELOG.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4899bb21..6827ee77e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Adaptive turns VSync off during FPS drops, which is better if supported by your graphics card. - Doesn't work on Mac, sorry! - Otis now has muzzle flashes when shooting. +- Added a little easter egg to one of Pico's Results Screen animations. - Overhauled the sticker system to allow modders to easily add custom sticker sets. ([cdc468b](https://github.com/FunkinCrew/Funkin/commit/cdc468ba15683b3c0f54015e337673c77ddd7962)) - by @AbnormalPoof in [#4003](https://github.com/FunkinCrew/Funkin/pull/4003) - Implemented a macro to optimize registries and entries. ([1497521](https://github.com/FunkinCrew/Funkin/commit/14975212a918adb1a5d96a349ec9e8e63c9fc64b)) - by @lemz1 in [#3694](https://github.com/FunkinCrew/Funkin/pull/3694) - The macro is now used to retrieve base game assets. ([963e2ec](https://github.com/FunkinCrew/Funkin/commit/963e2ecd630fae24dae4206d315618cf4c4be6db)) - by @lemz1 in [#4707](https://github.com/FunkinCrew/Funkin/pull/4707) @@ -43,6 +44,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Renamed “Auto Pause” preference to “Pause on Unfocus” for clarity. ([52be941](https://github.com/FunkinCrew/Funkin/commit/52be941b4503da0ac76918e2482ab1804866f2cf)) - by @JackXson-Real in [#4346](https://github.com/FunkinCrew/Funkin/pull/4346) - Overhauled `FileUtil`, introducing various fixes, new functions, and sandboxing. ([95ade2a](https://github.com/FunkinCrew/Funkin/commit/95ade2a08b7709e8208ec1b3e123bf5b4308ba10)) - by @cyn0x8 in [#3032](https://github.com/FunkinCrew/Funkin/pull/3032) +### Fixed + +- Story mode medals are now awarded even without scoring a new personal best. +- Highscores are now submitted to Newgrounds even without scoring a new personal best. - The Freeplay menu no longer displays songs without Erect variations when returning from an Erect variation song. - Fixed Freeplay DJ animations for Boyfriend and Pico when idling (properly this time). - Alternate instrumentals for Cocoa, Senpai, Roses, and Stress are now locked until their Pico Mix is beaten. @@ -183,16 +188,6 @@ The Pit Stop 2 update! - Removed an unused class from Polymod blacklist. ([06c12e3](https://github.com/FunkinCrew/Funkin/commit/06c12e36c6bd6df4e2be32a3bec540172e79e162)) - by @AbnormalPoof in [#3729](https://github.com/FunkinCrew/Funkin/pull/3729) - Many additional small bug fixes. -### Fixed - -* @PatoFlamejanteTV made their first contribution in [#3843](https://github.com/FunkinCrew/Funkin/pull/3843) -* @sphis-Sinco made their first contribution in [#3881](https://github.com/FunkinCrew/Funkin/pull/3881) -* @MrMadera made their first contribution in [#3934](https://github.com/FunkinCrew/Funkin/pull/3934) -* @MidyGamy made their first contribution in [#4068](https://github.com/FunkinCrew/Funkin/pull/4068) -* @Lasercar made their first contribution in [#4082](https://github.com/FunkinCrew/Funkin/pull/4082) -* @MrScottyPieey made their first contribution in [#4085](https://github.com/FunkinCrew/Funkin/pull/4085) - - ## New Contributors for 0.6.0 * @PatoFlamejanteTV made their first contribution in [#3843](https://github.com/FunkinCrew/Funkin/pull/3843) From 360b73dd0bab9a08ae1586ca21a773bf34f0c907 Mon Sep 17 00:00:00 2001 From: Hundrec Date: Mon, 21 Apr 2025 20:55:57 -0600 Subject: [PATCH 17/38] Specify "flip horizontally" shortcut in Changelog entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6827ee77e..0ca405a4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -135,7 +135,7 @@ The Pit Stop 2 update! - Added on-screen descriptions for each item in the Preferences menu. ([a17b0e8](https://github.com/FunkinCrew/Funkin/commit/a17b0e8b3cc1d56fcdc0b51eaca9fd57cdb5bce0)) - by @anysad in [#3872](https://github.com/FunkinCrew/Funkin/pull/3872) - Added precise scrolling in the Chart Editor using Ctrl-Mouse Wheel. ([0d8e4a5](https://github.com/FunkinCrew/Funkin/commit/0d8e4a53305d6d069454812766300122f3581e31)) - by @ninjamuffin99 in [#3806](https://github.com/FunkinCrew/Funkin/pull/3806) - Added a “None” option to the character selector in the Chart Editor. ([9c2ef02](https://github.com/FunkinCrew/Funkin/commit/9c2ef0236818883ad1275571dac49eab70ca0ea0)) - by @Lasercar in [#4279](https://github.com/FunkinCrew/Funkin/pull/4279) -- Added the ability to flip the character in the Animation Editor. ([de02137](https://github.com/FunkinCrew/Funkin/commit/de02137d7c7d1779e85aeda34743f506a5b9cc27)) - by @AbnormalPoof in [#3028](https://github.com/FunkinCrew/Funkin/pull/3028) +- Added the ability to flip the character horizontally in the Animation Editor by pressing G. ([de02137](https://github.com/FunkinCrew/Funkin/commit/de02137d7c7d1779e85aeda34743f506a5b9cc27)) - by @AbnormalPoof in [#3028](https://github.com/FunkinCrew/Funkin/pull/3028) - Added offsets support for album titles. ([69d8570](https://github.com/FunkinCrew/Funkin/commit/69d8570a9eb06011ed6dd95fcbef83d90f7f8684)) - by @AbnormalPoof in [#3618](https://github.com/FunkinCrew/Funkin/pull/3618) - Added three new properties to stage data: `angle`, `scroll`, and `alpha`. ([ff56b19](https://github.com/FunkinCrew/Funkin/commit/ff56b1948aef42bbb6bb4ede4f9b2012d49ab044)) - by @AbnormalPoof in [#3720](https://github.com/FunkinCrew/Funkin/pull/3720) - Added script events for losing/gaining focus. ([4b127b6](https://github.com/FunkinCrew/Funkin/commit/4b127b64130f6f753d0574ec66a1672322e4bd13)) - by @AbnormalPoof in [#3721](https://github.com/FunkinCrew/Funkin/pull/3721) From f385cf9fd33e5358427f40dad3fecfed233c1706 Mon Sep 17 00:00:00 2001 From: Abnormal <86753001+AbnormalPoof@users.noreply.github.com> Date: Fri, 4 Apr 2025 17:30:17 -0500 Subject: [PATCH 18/38] fix: Fix texture atlases looping indefinitely --- source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx b/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx index 5541b2184..412680eec 100644 --- a/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx +++ b/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx @@ -66,6 +66,8 @@ class FlxAtlasSprite extends FlxAnimate throw 'FlxAtlasSprite not initialized properly. Are you sure the path (${path}) exists?'; } + onAnimationComplete.add(cleanupAnimation); + // This defaults the sprite to play the first animation in the atlas, // then pauses it. This ensures symbols are intialized properly. this.anim.play(''); From c0353bca2babcad52e2f2ba34ed8376ea85eb357 Mon Sep 17 00:00:00 2001 From: Abnormal <86753001+AbnormalPoof@users.noreply.github.com> Date: Fri, 2 May 2025 13:53:30 -0500 Subject: [PATCH 19/38] remove extra callback (already gets called in `_onAnimationComplete()` by dispatching the animation name to `onAnimationComplete` --- source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx | 1 - 1 file changed, 1 deletion(-) diff --git a/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx b/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx index 412680eec..2447f5f2c 100644 --- a/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx +++ b/source/funkin/graphics/adobeanimate/FlxAtlasSprite.hx @@ -319,7 +319,6 @@ class FlxAtlasSprite extends FlxAnimate else if (fr != null && anim.curFrame != anim.length - 1) { anim.curFrame--; - cleanupAnimation(currentAnimation ?? ""); _onAnimationComplete(); } } From def1b74eb6987272bc360cbf586ddcd1c26c6381 Mon Sep 17 00:00:00 2001 From: CrusherNotDrip <90648119+CrusherNotDrip@users.noreply.github.com> Date: Fri, 2 May 2025 16:40:31 -0400 Subject: [PATCH 20/38] Stop the game from crashing when clicking a recent chart before tooltip appears --- .../ui/debug/charting/dialogs/ChartEditorWelcomeDialog.hx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/funkin/ui/debug/charting/dialogs/ChartEditorWelcomeDialog.hx b/source/funkin/ui/debug/charting/dialogs/ChartEditorWelcomeDialog.hx index 8d5e8b620..165d4ca5b 100644 --- a/source/funkin/ui/debug/charting/dialogs/ChartEditorWelcomeDialog.hx +++ b/source/funkin/ui/debug/charting/dialogs/ChartEditorWelcomeDialog.hx @@ -91,6 +91,8 @@ class ChartEditorWelcomeDialog extends ChartEditorBaseDialog #end linkRecentChart.onClick = function(_event) { + linkRecentChart.hide(); + this.hideDialog(DialogButton.CANCEL); // Load chart from file From a74369c77e8759ea89d43253fac8905a1aac6ef6 Mon Sep 17 00:00:00 2001 From: cyn0x8 Date: Wed, 16 Apr 2025 23:34:05 -0700 Subject: [PATCH 21/38] fixes + stronger sandboxing --- .../ui/debug/charting/ChartEditorState.hx | 2 +- .../ui/debug/stageeditor/StageEditorState.hx | 2 +- .../components/BackupAvailableDialog.hx | 3 +- source/funkin/util/FileUtil.hx | 185 +++++++++++++----- source/funkin/util/WindowUtil.hx | 87 ++++---- 5 files changed, 176 insertions(+), 103 deletions(-) diff --git a/source/funkin/ui/debug/charting/ChartEditorState.hx b/source/funkin/ui/debug/charting/ChartEditorState.hx index 91c18a81e..ea1d21c97 100644 --- a/source/funkin/ui/debug/charting/ChartEditorState.hx +++ b/source/funkin/ui/debug/charting/ChartEditorState.hx @@ -3225,7 +3225,7 @@ class ChartEditorState extends UIState // UIState derives from MusicBeatState #if sys // TODO: Is there a way to open a folder and highlight a file in it? var absoluteBackupsPath:String = Path.join([Sys.getCwd(), ChartEditorImportExportHandler.BACKUPS_PATH]); - WindowUtil.openFolder(absoluteBackupsPath); + FileUtil.openFolder(absoluteBackupsPath); return true; #else trace('No file system access, cannot open backups folder.'); diff --git a/source/funkin/ui/debug/stageeditor/StageEditorState.hx b/source/funkin/ui/debug/stageeditor/StageEditorState.hx index aaafc1a52..a1c56bb85 100644 --- a/source/funkin/ui/debug/stageeditor/StageEditorState.hx +++ b/source/funkin/ui/debug/stageeditor/StageEditorState.hx @@ -1267,7 +1267,7 @@ class StageEditorState extends UIState case "open folder": #if sys var absoluteBackupsPath:String = haxe.io.Path.join([Sys.getCwd(), BACKUPS_PATH]); - WindowUtil.openFolder(absoluteBackupsPath); + FileUtil.openFolder(absoluteBackupsPath); #end case "test stage": diff --git a/source/funkin/ui/debug/stageeditor/components/BackupAvailableDialog.hx b/source/funkin/ui/debug/stageeditor/components/BackupAvailableDialog.hx index 5ab4029ef..e7b4e31e1 100644 --- a/source/funkin/ui/debug/stageeditor/components/BackupAvailableDialog.hx +++ b/source/funkin/ui/debug/stageeditor/components/BackupAvailableDialog.hx @@ -5,7 +5,6 @@ import haxe.ui.containers.dialogs.Dialog.DialogButton; import funkin.util.FileUtil; import haxe.io.Path; import funkin.util.DateUtil; -import funkin.util.WindowUtil; using StringTools; @@ -57,7 +56,7 @@ class BackupAvailableDialog extends Dialog // :[ #if sys var absoluteBackupsPath:String = Path.join([Sys.getCwd(), StageEditorState.BACKUPS_PATH]); - WindowUtil.openFolder(absoluteBackupsPath); + FileUtil.openFolder(absoluteBackupsPath); #end } diff --git a/source/funkin/util/FileUtil.hx b/source/funkin/util/FileUtil.hx index cf9109bcf..fa0af4235 100644 --- a/source/funkin/util/FileUtil.hx +++ b/source/funkin/util/FileUtil.hx @@ -52,24 +52,44 @@ class FileUtil /** * Paths which should not be deleted or modified by scripts. */ - private static final PROTECTED_PATHS:Array = [ - '', - 'assets', - 'manifest', - 'manifest/*', - 'plugins', - 'plugins/*', - 'Funkin.exe', - 'Funkin', - 'libvlc.dll', - 'libvlccore.dll', - 'lime.ndll' - ]; + public static var PROTECTED_PATHS(get, never):Array; + + public static function get_PROTECTED_PATHS():Array + { + final protected:Array = [ + '', + '.', + 'assets', + 'assets/*', + 'backups', + 'backups/*', + 'manifest', + 'manifest/*', + 'plugins', + 'plugins/*', + 'Funkin.exe', + 'Funkin', + 'icon.ico', + 'libvlc.dll', + 'libvlccore.dll', + 'lime.ndll', + 'scores.json' + ]; + + #if sys + for (i in 0...protected.length) + { + protected[i] = sys.FileSystem.fullPath(Path.join([gameDirectory, protected[i]])); + } + #end + + return protected; + } /** - * Invalid filesystem characters. + * Regex for invalid filesystem characters. */ - private static final INVALID_CHARS:Array = [':', '*', '?', '"', '<', '>', '|']; + public static final INVALID_CHARS:EReg = ~/[:*?"<>|\n\r\t]/g; #if sys private static var _gameDirectory:Null = null; @@ -82,7 +102,7 @@ class FileUtil return _gameDirectory; } - return _gameDirectory = Path.directory(Path.normalize(sys.FileSystem.fullPath(Sys.programPath()))); + return _gameDirectory = sys.FileSystem.fullPath(Path.directory(Sys.programPath())); } #end @@ -1121,8 +1141,64 @@ class FileUtil }; } - public static function openFolder(pathFolder:String) // what is this for?? - WindowUtil.openFolder(pathFolder); + /** + * Runs platform-specific code to open a path in the file explorer. + * + * @param pathFolder The path of the folder to open. + */ + public static function openFolder(pathFolder:String):Void + { + #if sys + pathFolder = pathFolder.trim(); + if (!directoryExists(pathFolder)) + { + throw 'Path is not a directory: "$pathFolder"'; + } + + #if windows + Sys.command('explorer', [pathFolder.replace('/', '\\')]); + #elseif mac + // mac could be fuckie with where the log folder is relative to the game file... + // if this comment is still here... it means it has NOT been verified on mac yet! + // + // FileUtil.hx note: this was originally used to open the logs specifically! + // thats why the above comment is there! + Sys.command('open', [pathFolder]); + #elseif linux + // TODO: implement linux + // some shit with xdg-open :thinking: emoji... + #end + #else + throw 'External folder open is not supported on this platform.'; + #end + } + + /** + * Runs platform-specific code to open a file explorer and select a specific file. + * + * @param path The path of the file to select. + */ + public static function openSelectFile(path:String):Void + { + #if sys + path = path.trim(); + if (!pathExists(path)) + { + throw 'Path does not exist: "$path"'; + } + + #if windows + Sys.command('explorer', ['/select,', path.replace('/', '\\')]); + #elseif mac + Sys.command('open', ['-R', path]); + #elseif linux + // TODO: unsure of the linux equivalent to opening a folder and then "selecting" a file. + Sys.command('open', [path]); + #end + #else + throw 'External file selection is not supported on this platform.'; + #end + } private static function convertTypeFilter(?typeFilter:Array):Null { @@ -1157,7 +1233,8 @@ class FileUtilSandboxed */ public static function sanitizePath(path:String):String { - if (path == null) + path = (path ?? '').trim(); + if (path == '') { #if sys return FileUtil.gameDirectory; @@ -1171,19 +1248,14 @@ class FileUtilSandboxed path = path.substring(path.lastIndexOf(':') + 1); } - path = path.trim().replace('\\', '/'); + path = path.replace('\\', '/'); while (path.contains('//')) { path = path.replace('//', '/'); } - @:privateAccess for (char in FileUtil.INVALID_CHARS) - { - path = path.replace(char, ''); - } - - var parts:Array = path.split('/'); - var sanitized:Array = new Array(); + final parts:Array = FileUtil.INVALID_CHARS.replace(path, '').split('/'); + final sanitized:Array = new Array(); for (part in parts) { switch (part) @@ -1193,25 +1265,31 @@ class FileUtilSandboxed case '..': sanitized.pop(); default: - sanitized.push(part); + sanitized.push(part.trim()); } } - var ret:String = sanitized.join('/'); + if (sanitized.length == 0) + { + #if sys + return FileUtil.gameDirectory; + #else + return ''; + #end + } #if sys - var realPath:String = Path.normalize(sys.FileSystem.fullPath(Path.join([FileUtil.gameDirectory, ret]))); - // ^ TODO: figure out how to get "real" path of symlinked paths - - if (!realPath.startsWith(FileUtil.gameDirectory.toString())) + // TODO: figure out how to get "real" path of symlinked paths + final realPath:String = sys.FileSystem.fullPath(Path.join([FileUtil.gameDirectory, sanitized.join('/')])); + if (!realPath.startsWith(FileUtil.gameDirectory)) { return FileUtil.gameDirectory; } - ret = realPath; + return realPath; + #else + return sanitized.join('/'); #end - - return ret; } /** @@ -1219,9 +1297,9 @@ class FileUtilSandboxed * @param path The path to check. * @return Whether the path is protected. */ - public static function isProtected(path:String):Bool + public static function isProtected(path:String, sanitizeFirst:Bool = true):Bool { - path = sanitizePath(path); + if (sanitizeFirst) path = sanitizePath(path); @:privateAccess for (protected in FileUtil.PROTECTED_PATHS) { if (path == protected || (protected.contains('*') && path.startsWith(protected.substring(0, protected.indexOf('*'))))) @@ -1298,7 +1376,7 @@ class FileUtilSandboxed public static function saveFilesAsZIPToPath(resources:Array, path:String, mode:FileWriteMode = Skip):Bool { - if (isProtected(path = sanitizePath(path))) throw 'Cannot write to protected path: $path'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot write to protected path: $path'; return FileUtil.saveFilesAsZIPToPath(resources, path, mode); } @@ -1329,32 +1407,32 @@ class FileUtilSandboxed public static function writeStringToPath(path:String, data:String, mode:FileWriteMode = Skip):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot write to protected path: $path'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot write to protected path: $path'; FileUtil.writeStringToPath(path, data, mode); } public static function writeBytesToPath(path:String, data:Bytes, mode:FileWriteMode = Skip):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot write to protected path: $path'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot write to protected path: $path'; FileUtil.writeBytesToPath(path, data, mode); } public static function appendStringToPath(path:String, data:String):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot write to protected path: $path'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot write to protected path: $path'; FileUtil.appendStringToPath(path, data); } public static function moveFile(path:String, destination:String):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot move protected path: $path'; - if (isProtected(destination = sanitizePath(destination))) throw 'Cannot move to protected path: $destination'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot move protected path: $path'; + if (isProtected(destination = sanitizePath(destination), false)) throw 'Cannot move to protected path: $destination'; FileUtil.moveFile(path, destination); } public static function deleteFile(path:String):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot delete protected path: $path'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot delete protected path: $path'; FileUtil.deleteFile(path); } @@ -1390,14 +1468,14 @@ class FileUtilSandboxed public static function moveDir(path:String, destination:String, ?ignore:Array, strict:Bool = true):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot move protected path: "$path"'; - if (isProtected(destination = sanitizePath(destination))) throw 'Cannot move to protected path: "$destination"'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot move protected path: "$path"'; + if (isProtected(destination = sanitizePath(destination), false)) throw 'Cannot move to protected path: "$destination"'; FileUtil.moveDir(path, destination, ignore, strict); } public static function deleteDir(path:String, recursive:Bool = false, ?ignore:Array):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot delete protected path: "$path"'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot delete protected path: "$path"'; FileUtil.deleteDir(path, recursive, ignore); } @@ -1413,7 +1491,7 @@ class FileUtilSandboxed public static function rename(path:String, newName:String, keepExtension:Bool = true):Void { - if (isProtected(path = sanitizePath(path))) throw 'Cannot rename protected path: "$path"'; + if (isProtected(path = sanitizePath(path), false)) throw 'Cannot rename protected path: "$path"'; FileUtil.rename(path, sanitizePath(newName), keepExtension); } @@ -1442,9 +1520,14 @@ class FileUtilSandboxed return FileUtil.makeZIPEntryFromBytes(name, data); } - public static function openFolder(pathFolder:String) + public static function openFolder(pathFolder:String):Void { - FileUtil.openFolder(pathFolder); + FileUtil.openFolder(sanitizePath(pathFolder)); + } + + public static function openSelectFile(path:String):Void + { + FileUtil.openSelectFile(sanitizePath(path)); } } diff --git a/source/funkin/util/WindowUtil.hx b/source/funkin/util/WindowUtil.hx index c6d8bee6a..ee64660cb 100644 --- a/source/funkin/util/WindowUtil.hx +++ b/source/funkin/util/WindowUtil.hx @@ -16,6 +16,39 @@ using StringTools; #end class WindowUtil { + /** + * A regex to match valid URLs. + */ + public static final URL_REGEX:EReg = ~/^https?:\/?\/?(?:www\.)?[-a-zA-Z0-9@:%_\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)$/; + + /** + * Sanitizes a URL via a regex. + * + * @param targetUrl The URL to sanitize. + * @return The sanitized URL, or an empty string if the URL is invalid. + */ + public static function sanitizeURL(targetUrl:String):String + { + targetUrl = (targetUrl ?? '').trim(); + if (targetUrl == '') + { + return ''; + } + + final lowerUrl:String = targetUrl.toLowerCase(); + if (!lowerUrl.startsWith('http:') && !lowerUrl.startsWith('https:')) + { + targetUrl = 'http://' + targetUrl; + } + + if (URL_REGEX.match(targetUrl)) + { + return URL_REGEX.matched(0); + } + + return ''; + } + /** * Runs platform-specific code to open a URL in a web browser. * @param targetUrl The URL to open. @@ -28,6 +61,12 @@ class WindowUtil else if (protocol[0] != 'http' && protocol[0] != 'https') throw "openURL can only open http and https links."; #if FEATURE_OPEN_URL + targetUrl = sanitizeURL(targetUrl); + if (targetUrl == '') + { + throw 'Invalid URL: "$targetUrl"'; + } + #if linux Sys.command('/usr/bin/xdg-open $targetUrl &'); #else @@ -63,54 +102,6 @@ class WindowUtil } #end - /** - * Runs platform-specific code to open a path in the file explorer. - * @param targetPath The path to open. - */ - public static function openFolder(targetPath:String):Void - { - #if html5 - throw 'Cannot open URLs on this platform.'; - #else - if (!sys.FileSystem.exists(targetPath) || !sys.FileSystem.isDirectory(targetPath)) throw 'openFolder should only be used to open existing folders.'; - #if FEATURE_OPEN_URL - #if windows - Sys.command('explorer', [targetPath.replace('/', '\\')]); - #elseif mac - Sys.command('open', [targetPath]); - #elseif linux - Sys.command('open', [targetPath]); - #end - #else - throw 'Cannot open URLs on this platform.'; - #end - #end - } - - /** - * Runs platform-specific code to open a file explorer and select a specific file. - * @param targetPath The path of the file to select. - */ - public static function openSelectFile(targetPath:String):Void - { - #if html5 - throw 'Cannot open URLs on this platform.'; - #else - #if FEATURE_OPEN_URL - #if windows - Sys.command('explorer', ['/select,' + targetPath.replace('/', '\\')]); - #elseif mac - Sys.command('open', ['-R', targetPath]); - #elseif linux - // TODO: unsure of the linux equivalent to opening a folder and then "selecting" a file. - Sys.command('open', [targetPath]); - #end - #else - throw 'Cannot open URLs on this platform.'; - #end - #end - } - /** * Dispatched when the game window is closed. */ From 6f43438cdbfecf26d4bcf62a0d9ff71e40333ac2 Mon Sep 17 00:00:00 2001 From: cyn0x8 Date: Sat, 26 Apr 2025 18:26:09 -0700 Subject: [PATCH 22/38] hopefully fix #4814 --- source/funkin/modding/PolymodHandler.hx | 8 ++++++-- source/funkin/util/FileUtil.hx | 10 ++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/source/funkin/modding/PolymodHandler.hx b/source/funkin/modding/PolymodHandler.hx index 6ed966403..4ae1d46bc 100644 --- a/source/funkin/modding/PolymodHandler.hx +++ b/source/funkin/modding/PolymodHandler.hx @@ -80,8 +80,10 @@ class PolymodHandler */ public static function loadAllMods():Void { + #if sys // Create the mod root if it doesn't exist. createModRoot(); + #end trace('Initializing Polymod (using all mods)...'); loadModsById(getAllModIds()); } @@ -91,9 +93,10 @@ class PolymodHandler */ public static function loadEnabledMods():Void { + #if sys // Create the mod root if it doesn't exist. createModRoot(); - + #end trace('Initializing Polymod (using configured mods)...'); loadModsById(Save.instance.enabledModIds); } @@ -103,9 +106,10 @@ class PolymodHandler */ public static function loadNoMods():Void { + #if sys // Create the mod root if it doesn't exist. createModRoot(); - + #end // We still need to configure the debug print calls etc. trace('Initializing Polymod (using no mods)...'); loadModsById([]); diff --git a/source/funkin/util/FileUtil.hx b/source/funkin/util/FileUtil.hx index fa0af4235..3f47b6112 100644 --- a/source/funkin/util/FileUtil.hx +++ b/source/funkin/util/FileUtil.hx @@ -621,8 +621,6 @@ class FileUtil throw 'Target path is a directory, not a file: "$path"'; } - createDirIfNotExists(Path.directory(path)); - var shouldWrite:Bool = true; switch (mode) { @@ -811,14 +809,14 @@ class FileUtil */ public static function createDirIfNotExists(dir:String):Void { - #if sys if (!directoryExists(dir)) { + #if sys sys.FileSystem.createDirectory(dir); + #else + throw 'Directory creation is not supported on this platform.'; + #end } - #else - throw 'Directory creation is not supported on this platform.'; - #end } /** From d29bb47d221b1e82d7142c837c4b5468b9ca5046 Mon Sep 17 00:00:00 2001 From: EliteMasterEric Date: Fri, 2 May 2025 18:52:21 -0400 Subject: [PATCH 23/38] Update assets submodule --- assets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets b/assets index f87255d4b..c108a7ff0 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit f87255d4bcb7a7ce0dc920aefc36b98a96115c75 +Subproject commit c108a7ff0d11bf328e7b232160b8f68c71e21bca From a19413b1eae585c205f5839dc4deeaafb9ff2782 Mon Sep 17 00:00:00 2001 From: Hundrec Date: Fri, 2 May 2025 17:42:30 -0600 Subject: [PATCH 24/38] Credit some funkin.assets PRs Establishing a system for writing funkin.assets entries --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ca405a4b..3214f432e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,7 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The nearest song with an Erect variation will be selected when switching. - Switching difficulties now always plays the capsule jump-in animation. - The "Random" capsule now plays animations consistent with other capsules. -- The Eggnog Erect cutscene can now be skipped. ([0303a03](https://github.com/FunkinCrew/funkin.assets/commit/1202651db8ea938fe11b6b734fbf7884d101e6ad)) - by @ShadzXD in [#62](https://github.com/FunkinCrew/funkin.assets/pull/62) +- The Eggnog Erect cutscene can now be skipped. ([0303a03](https://github.com/FunkinCrew/funkin.assets/commit/1202651db8ea938fe11b6b734fbf7884d101e6ad)) - by @ShadzXD in [funkin.assets#62](https://github.com/FunkinCrew/funkin.assets/pull/62) - Swapped the positions of “skip” and “restart” items in the dialogue pause menu for consistency. ([1f88a3b](https://github.com/FunkinCrew/Funkin/commit/1f88a3b6e13e9283ad680805deab5e27ba141d96)) - by @VioletSnowLeopard in [#4553](https://github.com/FunkinCrew/Funkin/pull/4553) - The Controls menu now prevents unbinding essential UI controls to safeguard against softlocking save files. ([7eebce4](https://github.com/FunkinCrew/Funkin/commit/7eebce432d7627a1cf0bbd43f22a6f9bcb63ff65)) - by @VioletSnowLeopard in [#4382](https://github.com/FunkinCrew/Funkin/pull/4382) - Renamed “Auto Pause” preference to “Pause on Unfocus” for clarity. ([52be941](https://github.com/FunkinCrew/Funkin/commit/52be941b4503da0ac76918e2482ab1804866f2cf)) - by @JackXson-Real in [#4346](https://github.com/FunkinCrew/Funkin/pull/4346) @@ -61,7 +61,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - A-Bot's visualizer is now blank before the song starts. - Debug editor tooltips no longer display behind windows. - Clearing save data no longer crashes the game. -- Adding custom parameters to note kinds no longer crashes the Chart Editor. ([0a7bd31](https://github.com/FunkinCrew/Funkin/commit/0a7bd3111f59efbecfe097f8bbcfdefa5ace299d)) - by @Lasercar in [#136](https://github.com/FunkinCrew/funkin.assets/pull/136) +- Adding custom parameters to note kinds no longer crashes the Chart Editor. ([0a7bd31](https://github.com/FunkinCrew/Funkin/commit/0a7bd3111f59efbecfe097f8bbcfdefa5ace299d)) - by @Lasercar in [funkin.assets#136](https://github.com/FunkinCrew/funkin.assets/pull/136) - Improved performance in the Freeplay menu before entering a song. ([2b7254f](https://github.com/FunkinCrew/Funkin/commit/2b7254fbd2356e9da91e216f178a88f17874a6eb)) - by @superpowers04 in [#4729](https://github.com/FunkinCrew/Funkin/pull/4729) - Prevented a crash by capping Freeplay and Results screen score displays at their largest possible values (actual scores are not capped). ([51324e9](https://github.com/FunkinCrew/Funkin/commit/51324e9c283c43ca861d3369ba9b3e1db9c89765)) - by @KoloInDaCrib in [#3634](https://github.com/FunkinCrew/Funkin/pull/3634) - The Animation Editor no longer crashes when opened. ([b40b4b0](https://github.com/FunkinCrew/Funkin/commit/b40b4b03692910afceff361cf6ca3298fd787e3c)) - by @sector-a in [#4582](https://github.com/FunkinCrew/Funkin/pull/4582) @@ -183,6 +183,7 @@ The Pit Stop 2 update! - The Character Select screen no longer plays the unlock animation for some locked characters. ([7058126](https://github.com/FunkinCrew/Funkin/commit/7058126e99adb55e43f5f487b007d3efa9f324d5)) - by @AbnormalPoof in [#3748](https://github.com/FunkinCrew/Funkin/pull/3748) - All time signatures in the Chart Editor now display the correct number of beat/step tick lines. ([e570dfb](https://github.com/FunkinCrew/Funkin/commit/e570dfb8e754f9cb29ac2d8fff6e8513bc68b630)) - by @Keoiki in [#2860](https://github.com/FunkinCrew/Funkin/pull/2860) - The Debug menu now opens with the correct camera position. ([090ddd1](https://github.com/FunkinCrew/Funkin/commit/090ddd1f1c2aa48fdb83127b2235041643c99af5)) - by @ninjamuffin99 in [#3769](https://github.com/FunkinCrew/Funkin/pull/3769) +- Finally added an outline to the third GF sticker. [9e62572](https://github.com/FunkinCrew/funkin.assets/commit/9e62572ae27dc676c624a81af5c755490eb2dafe) - @M7theguy in [funkin.assets#33](https://github.com/FunkinCrew/funkin.assets/pull/33) - Removed an unused Freeplay class left over from legacy versions. ([abe4ac8](https://github.com/FunkinCrew/Funkin/commit/abe4ac8485539cbebe527a9a75698950232b68d2)) - by @AbnormalPoof in [#4370](https://github.com/FunkinCrew/Funkin/pull/4370) - Blacklisted an additional class for security. ([3492d41](https://github.com/FunkinCrew/Funkin/commit/3492d412c65c7f3fd61e6fc6c9410d8467122ab0)) - by @AbnormalPoof in [#4074](https://github.com/FunkinCrew/Funkin/pull/4074) - Removed an unused class from Polymod blacklist. ([06c12e3](https://github.com/FunkinCrew/Funkin/commit/06c12e36c6bd6df4e2be32a3bec540172e79e162)) - by @AbnormalPoof in [#3729](https://github.com/FunkinCrew/Funkin/pull/3729) @@ -196,6 +197,7 @@ The Pit Stop 2 update! * @MidyGamy made their first contribution in [#4068](https://github.com/FunkinCrew/Funkin/pull/4068) * @Lasercar made their first contribution in [#4082](https://github.com/FunkinCrew/Funkin/pull/4082) * @MrScottyPieey made their first contribution in [#4085](https://github.com/FunkinCrew/Funkin/pull/4085) +* @M7theguy made their first contribution in [funkin.assets#33](https://github.com/FunkinCrew/funkin.assets/pull/33) @@ -547,6 +549,7 @@ The Pit Stop 1 update! ## New Contributors for 0.4.0 +* @doggogit made their first contribution in [#2325](https://github.com/FunkinCrew/Funkin/pull/2325) * @Noobz4Life made their first contribution in [#2472](https://github.com/FunkinCrew/Funkin/pull/2472) * @MaybeMaru made their first contribution in [#2488](https://github.com/FunkinCrew/Funkin/pull/2488) * @NotHyper-474 made their first contribution in [#2490](https://github.com/FunkinCrew/Funkin/pull/2490) From bfbbf9cb0130542b682d21b7c12c6c8ee23c334c Mon Sep 17 00:00:00 2001 From: Abnormal <86753001+AbnormalPoof@users.noreply.github.com> Date: Fri, 2 May 2025 21:02:22 -0500 Subject: [PATCH 25/38] Bump game version to 0.6.4 --- project.hxp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project.hxp b/project.hxp index afa9f127f..e0ba25c5d 100644 --- a/project.hxp +++ b/project.hxp @@ -25,7 +25,7 @@ class Project extends HXProject { * REMEMBER TO CHANGE THIS WHEN THE GAME UPDATES! * You only have to change it here, the rest of the game will query this value. */ - static final VERSION:String = "0.6.3"; + static final VERSION:String = "0.6.4"; /** * The game's name. Used as the default window title. From ae1239c57de615a1ffc9a8a510aa629483a706e8 Mon Sep 17 00:00:00 2001 From: Abnormal <86753001+AbnormalPoof@users.noreply.github.com> Date: Fri, 2 May 2025 21:03:50 -0500 Subject: [PATCH 26/38] CHANGELOG for 0.6.4 --- CHANGELOG.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6827ee77e..3e03273f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,57 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 +## [0.6.4] - 2025-05-02 + +### Changed + +- Misses now actually reduce your clear percentage and rank, as Eric intended. ([5fdbd23](https://github.com/FunkinCrew/Funkin/commit/5fdbd23a17b8eaf21582283400be2c6444e8b198)) - by @Lasercar in [#4880](https://github.com/FunkinCrew/Funkin/pull/4880) +- The miss rebalance is now reflected on the Freeplay clear percent display. ([f6ac4ca](https://github.com/FunkinCrew/Funkin/commit/f6ac4cad43f4834a86a3fc156d6d39eca2c47c7e)) - by @Lasercar, @Hundrec, and @NotHyper-474 in [#4898](https://github.com/FunkinCrew/Funkin/pull/4898) and [#4923](https://github.com/FunkinCrew/Funkin/pull/4923) + +### Fixed + +- HTML5 builds are no longer literally unplayable. ([6f43438](https://github.com/FunkinCrew/Funkin/commit/6f43438cdbfecf26d4bcf62a0d9ff71e40333ac2)) - by @cyn0x8 in [#4398](https://github.com/FunkinCrew/Funkin/pull/4398) +- Medals no longer crash the game when obtained. ([808698a](https://github.com/FunkinCrew/Funkin/commit/808698ace7457bc76a8a52d415d63fa4ee5b9400)) - by @KoloInDaCrib in [#4815](https://github.com/FunkinCrew/Funkin/pull/4815) +- The game no longer crashes when reaching the main menu before authenticating with Newgrounds. ([a83a4a5](https://github.com/FunkinCrew/Funkin/commit/a83a4a599c2e407832ef9bbe47bb8b8c07ce712a)) - by @NotHyper-474 in [#4871](https://github.com/FunkinCrew/Funkin/pull/4871) +- User preferences and other settings are now properly saved after restarting the game. ([23a9e7f](https://github.com/FunkinCrew/Funkin/commit/23a9e7f944fb703160c2ed7b0bef38c70c5370db)) - by @Lasercar in [#4881](https://github.com/FunkinCrew/Funkin/pull/4881) +- Texture atlas sprites no longer loop infinitely, fixing issues with multiple cutscenes. ([f385cf9](https://github.com/FunkinCrew/Funkin/commit/f385cf9fd33e5358427f40dad3fecfed233c1706)) - by @AbnormalPoof in [#4564](https://github.com/FunkinCrew/Funkin/pull/4564) +- The Week 3 Pico Mix cutscene no longer breaks with Naughtyness turned off. ([e3aba5c](https://github.com/FunkinCrew/funkin.assets/commit/e3aba5c4faa8e8c705c3e0daf04e30db7ac5a136)) - by @Lasercar in [funkin.assets#169](https://github.com/FunkinCrew/funkin.assets/pull/169) +- Adjusted the pixel strumline’s position when Downscroll is enabled to match the regular notestyle. ([ea93ec9](https://github.com/FunkinCrew/Funkin/commit/ea93ec90cb5c5dbd4a5bea64114af58c70cb43f4)) - by @Lasercar in [#4318](https://github.com/FunkinCrew/Funkin/pull/4318) +- The Main Menu now correctly remembers your most recently selected menu item. ([05b9d68](https://github.com/FunkinCrew/Funkin/commit/05b9d68645b71c9cc36a5cb0c0e93af6acb36132)) - by @Lasercar and @Hundrec in [#4227](https://github.com/FunkinCrew/Funkin/pull/4227) +- Fixed an occasional softlock when returning to the Freeplay menu from a song. ([b15e809](https://github.com/FunkinCrew/Funkin/commit/b15e809c63664e039781592dcbdee4383e73800e)) - by @TechnikTil in [#4665](https://github.com/FunkinCrew/Funkin/pull/4665) +- Switching to and from the Freeplay Random capsule now behaves more consistently. ([832bc5b](https://github.com/FunkinCrew/Funkin/commit/832bc5bd83d49a646b9c8cb2b767602c848be908)) - by @VioletSnowLeopard in [#4885](https://github.com/FunkinCrew/Funkin/pull/4885) +- Changing Freeplay filters with the Random capsule selected now behaves more consistently. ([edf6889](https://github.com/FunkinCrew/Funkin/commit/edf6889af9e7f68caead9b8139178a36b4b5b2d6)) - by @VioletSnowLeopard in [#4913](https://github.com/FunkinCrew/Funkin/pull/4913) +- Switching between identical Freeplay filters no longer makes the songlist invisible. ([8b9775d](https://github.com/FunkinCrew/Funkin/commit/8b9775d91f4f2b5896a637a014b4be770319968e)) - by @VioletSnowLeopard in [#4919](https://github.com/FunkinCrew/Funkin/pull/4919) +- The millions place digit of the Freeplay score display now updates properly. ([d9fcaf0](https://github.com/FunkinCrew/Funkin/commit/d9fcaf0e6382b121f7773d23f4864364a1e6a577)) - by @Lasercar in [#4065](https://github.com/FunkinCrew/Funkin/pull/4065) +- The Freeplay clear percent display is now more consistently aligned. ([329182e](https://github.com/FunkinCrew/funkin.assets/commit/329182ea1b6839187a1d800b2d009a4c1874479d)) - by @Hundrec in [funkin.assets#37](https://github.com/FunkinCrew/funkin.assets/pull/37) +- The debris in Pico’s Great Results animation no longer grows in size. ([c108a7f](https://github.com/FunkinCrew/funkin.assets/commit/c108a7ff0d11bf328e7b232160b8f68c71e21bca)) - by @ThatRozebudDude in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) +- Fixed the song not starting if more than 32 sounds are playing at once. ([31d3718](https://github.com/FunkinCrew/Funkin/commit/31d3718e5c33371cacd495219f9cc3908244bf71)) - by @KoloInDaCrib in [#4352](https://github.com/FunkinCrew/Funkin/pull/4352) +- Hot reloading (pressing F5) during dialogue no longer crashes the game. ([3e0dbe2](https://github.com/FunkinCrew/Funkin/commit/3e0dbe2758d68ccf4ded1d08bec247ab05d70829)) - by @KoloInDaCrib in [#4769](https://github.com/FunkinCrew/Funkin/pull/4769) +- Restarting a song without either a player or an opponent no longer crashes the game, fixing minimal playtest mode. ([bbc0546](https://github.com/FunkinCrew/Funkin/commit/bbc0546c7450b929dc78ad9271171ea899478e9d)) - by @thesuperpig56 in [#4778](https://github.com/FunkinCrew/Funkin/pull/4778) +- The sound tray no longer behaves incorrectly after wiping save data. ([afbb335](https://github.com/FunkinCrew/Funkin/commit/afbb3359938f020707efd92a17419e3658528ea5)) - by @Lasercar in [#4617](https://github.com/FunkinCrew/Funkin/pull/4617) +- Opening a chart from the “Open Recent” section no longer crashes the Chart Editor. ([def1b74](https://github.com/FunkinCrew/Funkin/commit/def1b74eb6987272bc360cbf586ddcd1c26c6381)) - by @CrusherNotDrip in [#4936](https://github.com/FunkinCrew/Funkin/pull/4936) +- Loading an invalid variation in the Chart Editor no longer crashes the game. ([c5f2a74](https://github.com/FunkinCrew/Funkin/commit/c5f2a744940dbc685b25373fa2dabb548f0b26fa)) - by @NotHyper-474 in [#4391](https://github.com/FunkinCrew/Funkin/pull/4391) +- Default difficulties are no longer re-added when saving and loading a .FNFC chart. ([8074d57](https://github.com/FunkinCrew/Funkin/commit/8074d571860aba2c2f6f1c642d8d0e671ff5355e)) - by @Lasercar in [#4216](https://github.com/FunkinCrew/Funkin/pull/4216) +- The Chart Editor now resizes properly after entering Fullscreen during a playtest. ([142ea6d](https://github.com/FunkinCrew/Funkin/commit/142ea6db0c53f6f9288109604702c2e7e5bc6f18)) - by @NotHyper-474 in [#4266](https://github.com/FunkinCrew/Funkin/pull/4266) +- Added three missing hotkeys to the Chart Editor user guide. ([73ccb9a](https://github.com/FunkinCrew/funkin.assets/commit/73ccb9a80d08f3311f51cf88950692d7c1ea5d60)) - by @NotHyper-474 and @Hundrec in [funkin.assets#83](https://github.com/FunkinCrew/funkin.assets/pull/83) +- The “Skip Forward” button is no longer named “Skip Back” in the Chart Editor. ([78f9fb7](https://github.com/FunkinCrew/funkin.assets/commit/78f9fb7cb6eaf7466826f144a0142c008fbff2f8)) - by @Hundrec in [funkin.assets#22](https://github.com/FunkinCrew/funkin.assets/pull/22) +- Exporting a character .JSON from the Animation Editor now fills in the file name. ([a8262a8](https://github.com/FunkinCrew/Funkin/commit/a8262a8d3b4d2169327131e21c98f803da4a5ee4)) - by @anysad in [#3090](https://github.com/FunkinCrew/Funkin/pull/3090) +- Properly credited MtH as a Charter in Monster’s metadata. ([6a10799](https://github.com/FunkinCrew/funkin.assets/commit/6a10799a40eb2b2deb364bcd3cc4387abe8e8bc4)) - by @ChillyBeanBAM in [funkin.assets#66](https://github.com/FunkinCrew/funkin.assets/pull/66) +- Corrected the chances of a Pause Menu easter egg appearing. ([0101bae](https://github.com/FunkinCrew/Funkin/commit/0101bae7ecc800e26efd9590fdfa1305039b4461)) - by @VioletSnowLeopard in [#4358](https://github.com/FunkinCrew/Funkin/pull/4358) +- Removed spammy traces for Playable Pico’s animations. ([f87255d](https://github.com/FunkinCrew/funkin.assets/commit/f87255d4bcb7a7ce0dc920aefc36b98a96115c75)) - by @VioletSnowLeopard in [funkin.assets#179](https://github.com/FunkinCrew/funkin.assets/pull/179) +- Fixed memory overflowing in crash logs. ([189e028](https://github.com/FunkinCrew/Funkin/commit/189e028442c7fb892ce4dab62a5d08db658f3b2b)) - by @ACrazyTown in [#4589](https://github.com/FunkinCrew/Funkin/pull/4589) + +### Removed + +- The CHANGELOG.md file will no longer be included in builds. Visit the [Funkin' GitHub](https://github.com/FunkinCrew/Funkin/blob/main/CHANGELOG.md) to view the latest changes! ([a7da71c](https://github.com/FunkinCrew/Funkin/commit/a7da71c8a87baa440a0bc6e23d7e9b36c7574e14)) - by @Hundrec and @NotHyper-474 in [#4868](https://github.com/FunkinCrew/Funkin/pull/4868) + +## New Contributors for 0.6.4 + +* @thesuperpig56 made their first contribution in [#4778](https://github.com/FunkinCrew/Funkin/pull/4778) +* @ThatRozebudDude made their first contribution in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) + + + ## [0.6.3] - 2025-04-25 ### Added From 0ad2780c5d1e589cdd19b27e4e657a5292c5b468 Mon Sep 17 00:00:00 2001 From: VioletSnowLeopard Date: Fri, 2 May 2025 23:12:38 -0400 Subject: [PATCH 27/38] add a missing new contributor --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54101ae4d..b7a914c4e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,6 +53,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## New Contributors for 0.6.4 * @thesuperpig56 made their first contribution in [#4778](https://github.com/FunkinCrew/Funkin/pull/4778) +* @CrusherNotDrip made their first contribution in [#4936](https://github.com/FunkinCrew/Funkin/pull/4936) * @ThatRozebudDude made their first contribution in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) From 23996095e17b6ee41e8b1c2d0293939f075ceb10 Mon Sep 17 00:00:00 2001 From: Hundrec Date: Fri, 2 May 2025 22:53:49 -0600 Subject: [PATCH 28/38] Forgor this PR in 0.6.4 lol! 4 more entries for those cool Freeplay fixes --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7a914c4e..9c9d1b24d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Switching between identical Freeplay filters no longer makes the songlist invisible. ([8b9775d](https://github.com/FunkinCrew/Funkin/commit/8b9775d91f4f2b5896a637a014b4be770319968e)) - by @VioletSnowLeopard in [#4919](https://github.com/FunkinCrew/Funkin/pull/4919) - The millions place digit of the Freeplay score display now updates properly. ([d9fcaf0](https://github.com/FunkinCrew/Funkin/commit/d9fcaf0e6382b121f7773d23f4864364a1e6a577)) - by @Lasercar in [#4065](https://github.com/FunkinCrew/Funkin/pull/4065) - The Freeplay clear percent display is now more consistently aligned. ([329182e](https://github.com/FunkinCrew/funkin.assets/commit/329182ea1b6839187a1d800b2d009a4c1874479d)) - by @Hundrec in [funkin.assets#37](https://github.com/FunkinCrew/funkin.assets/pull/37) +- The Freeplay alternate instrumental selector now disables all other inputs. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) +- The Freeplay alternate instrumental selector no longer becomes offset when changing difficulties. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) +- Exiting and then navigating through the Freeplay alternate instrumental selector no longer crashes the game. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) +- Ranks no longer overwrite themselves in the Freeplay new rank animation. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) - The debris in Pico’s Great Results animation no longer grows in size. ([c108a7f](https://github.com/FunkinCrew/funkin.assets/commit/c108a7ff0d11bf328e7b232160b8f68c71e21bca)) - by @ThatRozebudDude in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) - Fixed the song not starting if more than 32 sounds are playing at once. ([31d3718](https://github.com/FunkinCrew/Funkin/commit/31d3718e5c33371cacd495219f9cc3908244bf71)) - by @KoloInDaCrib in [#4352](https://github.com/FunkinCrew/Funkin/pull/4352) - Hot reloading (pressing F5) during dialogue no longer crashes the game. ([3e0dbe2](https://github.com/FunkinCrew/Funkin/commit/3e0dbe2758d68ccf4ded1d08bec247ab05d70829)) - by @KoloInDaCrib in [#4769](https://github.com/FunkinCrew/Funkin/pull/4769) From ccb75e8d4e5d2ee43e57a3675c234811d27777e3 Mon Sep 17 00:00:00 2001 From: Kade <26305836+Kade-github@users.noreply.github.com> Date: Sat, 3 May 2025 17:04:04 -0700 Subject: [PATCH 29/38] linux compile help --- docs/COMPILING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/COMPILING.md b/docs/COMPILING.md index 249327842..a988b9b94 100644 --- a/docs/COMPILING.md +++ b/docs/COMPILING.md @@ -24,6 +24,7 @@ - Linux: [`lime setup linux` Documentation](https://lime.openfl.org/docs/advanced-setup/linux/) - One of Funkin's dependencies uses libVLC, which requires you to install some development packages to be able to compile. Command for Ubuntu/Debian based systems: `sudo apt install libvlc-dev libvlccore-dev libvlccore9` + For other distros, please refer to [hxvlc's documentation](https://github.com/MAJigsaw77/hxvlc?tab=readme-ov-file#dependencies) - HTML5: Compiles without any extra setup 10. If you are targeting for native, you may need to run `lime rebuild ` and `lime rebuild -debug` 11. `lime test ` to build and launch the game for your platform (for example, `lime test windows`) From 2fdf63da35494ca74bc320c25fd4832c27cd316c Mon Sep 17 00:00:00 2001 From: Kade <26305836+Kade-github@users.noreply.github.com> Date: Sat, 3 May 2025 17:05:42 -0700 Subject: [PATCH 30/38] grammar --- docs/COMPILING.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/COMPILING.md b/docs/COMPILING.md index a988b9b94..f537f8a8d 100644 --- a/docs/COMPILING.md +++ b/docs/COMPILING.md @@ -23,8 +23,7 @@ - Mac: [`lime setup mac` Documentation](https://lime.openfl.org/docs/advanced-setup/macos/) - Linux: [`lime setup linux` Documentation](https://lime.openfl.org/docs/advanced-setup/linux/) - One of Funkin's dependencies uses libVLC, which requires you to install some development packages to be able to compile. - Command for Ubuntu/Debian based systems: `sudo apt install libvlc-dev libvlccore-dev libvlccore9` - For other distros, please refer to [hxvlc's documentation](https://github.com/MAJigsaw77/hxvlc?tab=readme-ov-file#dependencies) + Command for Ubuntu/Debian based systems: `sudo apt install libvlc-dev libvlccore-dev libvlccore9`, and for other distros, please refer to [hxvlc's documentation](https://github.com/MAJigsaw77/hxvlc?tab=readme-ov-file#dependencies) - HTML5: Compiles without any extra setup 10. If you are targeting for native, you may need to run `lime rebuild ` and `lime rebuild -debug` 11. `lime test ` to build and launch the game for your platform (for example, `lime test windows`) From 642331b2d0403b86da4b23e2963602aa059bbcf7 Mon Sep 17 00:00:00 2001 From: Eric Date: Sun, 4 May 2025 14:10:25 -0400 Subject: [PATCH 31/38] Create TRACY.md --- docs/TRACY.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 docs/TRACY.md diff --git a/docs/TRACY.md b/docs/TRACY.md new file mode 100644 index 000000000..cac039897 --- /dev/null +++ b/docs/TRACY.md @@ -0,0 +1,12 @@ +# Tracy Performance Profiling + +In v0.5.1, Funkin' gained support for a powerful instrumentation-based profiler known as Tracy. This development tool allows you to see exactly what the game is doing at any given moment, how long each function is taking to call, and even how memory is allocated and deallocated. This is the most powerful tool in your toolbox for diagnosing and resolving performance issues. + +## How to Use Tracy + +1. Download [Tracy](https://github.com/wolfpld/tracy) +2. Build the game with the `FEATURE_DEBUG_TRACY` flag. For example, `lime build windows -debug -DFEATURE_DEBUG_TRACY` +3. Start Tracy, click Connect. Tracy will start waiting for Funkin' to start. +4. Start the game with Tracy enabled. + +![Image](https://github.com/user-attachments/assets/2a394ca7-bc21-4fe3-ae55-347768fb5b87) From b2fb2916dc83b6c48f0e0a85de1b62d4a008eb13 Mon Sep 17 00:00:00 2001 From: ChillyBeanBAM <109490279+ChillyBeanBAM@users.noreply.github.com> Date: Mon, 5 May 2025 18:07:05 -0400 Subject: [PATCH 32/38] Whoops! Missed me! --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7a914c4e..8cd5619bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,6 +55,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * @thesuperpig56 made their first contribution in [#4778](https://github.com/FunkinCrew/Funkin/pull/4778) * @CrusherNotDrip made their first contribution in [#4936](https://github.com/FunkinCrew/Funkin/pull/4936) * @ThatRozebudDude made their first contribution in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) +* @ChillyBeanBAM made their first contribution in [funkin.assets#66](https://github.com/FunkinCrew/funkin.assets/pull/66) From f650c3962de3fbe052e1f7e2472c84b71cb3929c Mon Sep 17 00:00:00 2001 From: ChillyBeanBAM <109490279+ChillyBeanBAM@users.noreply.github.com> Date: Mon, 5 May 2025 18:17:14 -0400 Subject: [PATCH 33/38] done! --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cd5619bc..a500ac799 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,8 +54,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * @thesuperpig56 made their first contribution in [#4778](https://github.com/FunkinCrew/Funkin/pull/4778) * @CrusherNotDrip made their first contribution in [#4936](https://github.com/FunkinCrew/Funkin/pull/4936) -* @ThatRozebudDude made their first contribution in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) * @ChillyBeanBAM made their first contribution in [funkin.assets#66](https://github.com/FunkinCrew/funkin.assets/pull/66) +* @ThatRozebudDude made their first contribution in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) From 2c2da142dae798f00f6ca73df13bc08bf991d25b Mon Sep 17 00:00:00 2001 From: Hundrec Date: Tue, 6 May 2025 00:07:03 -0600 Subject: [PATCH 34/38] Clean up PR Template --- .github/pull_request_template.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 15e94daa5..18880d432 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,6 +1,10 @@ -## Does this PR close any issues? If so, link them below. -## Briefly describe the issue(s) fixed. + +## Linked Issues -## Include any relevant screenshots or videos. + +## Description + + +## Screenshots/Videos From a1a4acc12da8b28f6697cf01fa616e913a738719 Mon Sep 17 00:00:00 2001 From: Abnormal <86753001+AbnormalPoof@users.noreply.github.com> Date: Tue, 6 May 2025 13:48:10 -0500 Subject: [PATCH 35/38] Modifications to the rejected features list Co-authored-by: Hundrec --- docs/CONTRIBUTING.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index df0efcaae..563ee24b4 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -77,19 +77,16 @@ Here's a list of commonly suggested features and the reasons why they won't be a | Flashy Combo Milestones | https://github.com/FunkinCrew/Funkin/pull/4700#issuecomment-2798916579 | | Losing Icons for DD and Parents | https://github.com/FunkinCrew/Funkin/issues/3048#issuecomment-2243491536 | | Playable GF / Speaker BF / Speaker Pico | https://github.com/FunkinCrew/Funkin/issues/2953#issuecomment-2216985230 | +| New Intro Text Lines | https://github.com/FunkinCrew/Funkin/issues/5031#issuecomment-2855593376 | | Fresh (Chill Mix) as Title Screen Music | https://github.com/FunkinCrew/Funkin/pull/4282#issuecomment-2709334718 | -| Adjusted Difficulty Ratings | https://github.com/FunkinCrew/Funkin/issues/2781#issuecomment-2172053144 | | Difficulty Ratings above 20 | https://github.com/FunkinCrew/Funkin/issues/3075#issuecomment-2368984497 | -| Ability to Reset a Song's Score | https://github.com/FunkinCrew/Funkin/issues/3916#issuecomment-2525408261 | | Quick Restart Keybind (not R) | https://github.com/FunkinCrew/Funkin/issues/3268#issuecomment-2351095232 | | Countdown after Unpausing Song | https://github.com/FunkinCrew/Funkin/issues/2721#issuecomment-2159330106 | -| 4:3 Aspect Ratio for Week 6 | https://github.com/FunkinCrew/Funkin/issues/3840#issuecomment-2689158438 | | "Philly Glow" Effect from Psych Engine | https://github.com/FunkinCrew/Funkin/issues/3788#issuecomment-2688966982 | | Importing Charts from Psych Engine (and other mod content) | https://github.com/FunkinCrew/Funkin/issues/2586#issuecomment-2125733327 | | Backwards Compatibility for Modding | https://github.com/FunkinCrew/Funkin/issues/3949#issuecomment-2608391329 | | Lua Support | https://github.com/FunkinCrew/Funkin/issues/2643#issuecomment-2143718093 | - ## Issue Types Choose the issue template that best suits your needs! Here's what each template is designed for: @@ -156,14 +153,14 @@ Choosing the right base branch helps keep your commit history clean and avoid me Once you’re satisfied with the changes you’ve made, open a PR and base it on the same branch you previously chose. ## Maintaining your pull request -Keeping your pull request clean and easy to review increases the chance that it will be accepted! +Keeping your pull request clean and easy to review increases the chance that it will be accepted! Our maintenance policy is as follows: - If we require changes to your PR, we will label your PR `status: needs revision`. - We may also leave a comment under your PR specifying what changes you should make. - If you receive a comment, you have 90 days to implement the requested changes. - After this period, your PR will be closed due to inactivity and labeled `status: stale`. -- Even after your PR is closed, you may request for us to reopen it. Just be sure to address the issues! +- Even after your PR is closed, you may request for us to reopen it. Just be sure to address the issues! This policy ensures that PRs awaiting review are up to date and ready to merge. From d86dacf354d241a5a4d216673d73191667351bbf Mon Sep 17 00:00:00 2001 From: Hundrec Date: Sun, 11 May 2025 19:51:27 -0600 Subject: [PATCH 36/38] More PR size labels --- .github/changed-lines-count-labeler.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/.github/changed-lines-count-labeler.yml b/.github/changed-lines-count-labeler.yml index 9b2f338ce..7992f0d13 100644 --- a/.github/changed-lines-count-labeler.yml +++ b/.github/changed-lines-count-labeler.yml @@ -1,12 +1,22 @@ -# Add 'size: small' to any changes below 10 lines +# Add 'size: tiny' to any changes of at most 4 lines +'size: tiny': + max: 4 + +# Add 'size: small' to any changes between 5 and 9 lines 'size: small': + min: 5 max: 9 -# Add 'size: medium' to any changes between 10 and 100 lines +# Add 'size: medium' to any changes between 10 and 99 lines 'size: medium': min: 10 max: 99 -# Add 'size: large' to any changes of at least 100 lines +# Add 'size: large' to any changes between 100 and 499 lines 'size: large': min: 100 + max: 499 + +# Add 'size: huge' to any changes of at least 500 lines +'size: huge': + min: 500 From fda568c6a8bbe8ca3c8f80610a70945cbb43988d Mon Sep 17 00:00:00 2001 From: Hundrec Date: Thu, 15 May 2025 23:21:23 -0600 Subject: [PATCH 37/38] Adjust line change PR labeler thresholds --- .github/changed-lines-count-labeler.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/changed-lines-count-labeler.yml b/.github/changed-lines-count-labeler.yml index 7992f0d13..9637d9d19 100644 --- a/.github/changed-lines-count-labeler.yml +++ b/.github/changed-lines-count-labeler.yml @@ -2,21 +2,21 @@ 'size: tiny': max: 4 -# Add 'size: small' to any changes between 5 and 9 lines +# Add 'size: small' to any changes between 5 and 10 lines 'size: small': min: 5 - max: 9 + max: 10 -# Add 'size: medium' to any changes between 10 and 99 lines +# Add 'size: medium' to any changes between 11 and 100 lines 'size: medium': - min: 10 - max: 99 + min: 11 + max: 100 -# Add 'size: large' to any changes between 100 and 499 lines +# Add 'size: large' to any changes between 101 and 500 lines 'size: large': - min: 100 - max: 499 + min: 101 + max: 500 -# Add 'size: huge' to any changes of at least 500 lines +# Add 'size: huge' to any changes of more than 500 lines 'size: huge': - min: 500 + min: 501 From c363a53f9da202e2f57aed95aa12ec14fcd76f4b Mon Sep 17 00:00:00 2001 From: kade-github <26305836+Kade-github@users.noreply.github.com> Date: Wed, 28 May 2025 16:46:04 -0700 Subject: [PATCH 38/38] Revert "Merge public commits to MAIN and DEVELOP (#1045)" This reverts commit d61cc1d5be227df01baf8ccedfcf1e648d80aa54. --- .github/ISSUE_TEMPLATE/bug.yml | 2 +- .github/ISSUE_TEMPLATE/charting.yml | 2 +- .github/ISSUE_TEMPLATE/compiling.yml | 2 +- .github/ISSUE_TEMPLATE/crash.yml | 2 +- .github/changed-lines-count-labeler.yml | 24 +++------ .github/pull_request_template.md | 10 ++-- CHANGELOG.md | 66 ++----------------------- assets | 2 +- docs/COMPILING.md | 2 +- docs/CONTRIBUTING.md | 11 +++-- docs/TRACY.md | 12 ----- source/funkin/play/PlayState.hx | 8 ++- 12 files changed, 29 insertions(+), 114 deletions(-) delete mode 100644 docs/TRACY.md diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml index 022770a86..d815dd854 100644 --- a/.github/ISSUE_TEMPLATE/bug.yml +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -47,7 +47,7 @@ body: attributes: label: Version description: Which version are you playing on? The game version is in the bottom left corner of the main menu. - placeholder: ex. 0.6.4 + placeholder: ex. 0.6.3 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/charting.yml b/.github/ISSUE_TEMPLATE/charting.yml index 383bdafed..61bfd25c4 100644 --- a/.github/ISSUE_TEMPLATE/charting.yml +++ b/.github/ISSUE_TEMPLATE/charting.yml @@ -46,7 +46,7 @@ body: attributes: label: Version description: Which version are you playing on? The game version is in the bottom left corner of the main menu. - placeholder: ex. 0.6.4 + placeholder: ex. 0.6.3 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/compiling.yml b/.github/ISSUE_TEMPLATE/compiling.yml index 58c8b526d..8215ddd7b 100644 --- a/.github/ISSUE_TEMPLATE/compiling.yml +++ b/.github/ISSUE_TEMPLATE/compiling.yml @@ -34,7 +34,7 @@ body: attributes: label: Version description: Which version are you compiling? The game version is in the bottom left corner of the main menu or in the project.hxp file. - placeholder: ex. 0.6.4 + placeholder: ex. 0.6.3 validations: required: true diff --git a/.github/ISSUE_TEMPLATE/crash.yml b/.github/ISSUE_TEMPLATE/crash.yml index 073465f9e..459ed92a3 100644 --- a/.github/ISSUE_TEMPLATE/crash.yml +++ b/.github/ISSUE_TEMPLATE/crash.yml @@ -46,7 +46,7 @@ body: attributes: label: Version description: Which version are you playing on? The game version is in the bottom left corner of the main menu. - placeholder: ex. 0.6.4 + placeholder: ex. 0.6.3 validations: required: true diff --git a/.github/changed-lines-count-labeler.yml b/.github/changed-lines-count-labeler.yml index 9637d9d19..9b2f338ce 100644 --- a/.github/changed-lines-count-labeler.yml +++ b/.github/changed-lines-count-labeler.yml @@ -1,22 +1,12 @@ -# Add 'size: tiny' to any changes of at most 4 lines -'size: tiny': - max: 4 - -# Add 'size: small' to any changes between 5 and 10 lines +# Add 'size: small' to any changes below 10 lines 'size: small': - min: 5 - max: 10 + max: 9 -# Add 'size: medium' to any changes between 11 and 100 lines +# Add 'size: medium' to any changes between 10 and 100 lines 'size: medium': - min: 11 - max: 100 + min: 10 + max: 99 -# Add 'size: large' to any changes between 101 and 500 lines +# Add 'size: large' to any changes of at least 100 lines 'size: large': - min: 101 - max: 500 - -# Add 'size: huge' to any changes of more than 500 lines -'size: huge': - min: 501 + min: 100 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 18880d432..15e94daa5 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,10 +1,6 @@ +## Does this PR close any issues? If so, link them below. - -## Linked Issues +## Briefly describe the issue(s) fixed. - -## Description - - -## Screenshots/Videos +## Include any relevant screenshots or videos. diff --git a/CHANGELOG.md b/CHANGELOG.md index 68d145cdd..8edab9421 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,63 +6,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 -## [0.6.4] - 2025-05-02 - -### Changed - -- Misses now actually reduce your clear percentage and rank, as Eric intended. ([5fdbd23](https://github.com/FunkinCrew/Funkin/commit/5fdbd23a17b8eaf21582283400be2c6444e8b198)) - by @Lasercar in [#4880](https://github.com/FunkinCrew/Funkin/pull/4880) -- The miss rebalance is now reflected on the Freeplay clear percent display. ([f6ac4ca](https://github.com/FunkinCrew/Funkin/commit/f6ac4cad43f4834a86a3fc156d6d39eca2c47c7e)) - by @Lasercar, @Hundrec, and @NotHyper-474 in [#4898](https://github.com/FunkinCrew/Funkin/pull/4898) and [#4923](https://github.com/FunkinCrew/Funkin/pull/4923) - -### Fixed - -- HTML5 builds are no longer literally unplayable. ([6f43438](https://github.com/FunkinCrew/Funkin/commit/6f43438cdbfecf26d4bcf62a0d9ff71e40333ac2)) - by @cyn0x8 in [#4398](https://github.com/FunkinCrew/Funkin/pull/4398) -- Medals no longer crash the game when obtained. ([808698a](https://github.com/FunkinCrew/Funkin/commit/808698ace7457bc76a8a52d415d63fa4ee5b9400)) - by @KoloInDaCrib in [#4815](https://github.com/FunkinCrew/Funkin/pull/4815) -- The game no longer crashes when reaching the main menu before authenticating with Newgrounds. ([a83a4a5](https://github.com/FunkinCrew/Funkin/commit/a83a4a599c2e407832ef9bbe47bb8b8c07ce712a)) - by @NotHyper-474 in [#4871](https://github.com/FunkinCrew/Funkin/pull/4871) -- User preferences and other settings are now properly saved after restarting the game. ([23a9e7f](https://github.com/FunkinCrew/Funkin/commit/23a9e7f944fb703160c2ed7b0bef38c70c5370db)) - by @Lasercar in [#4881](https://github.com/FunkinCrew/Funkin/pull/4881) -- Texture atlas sprites no longer loop infinitely, fixing issues with multiple cutscenes. ([f385cf9](https://github.com/FunkinCrew/Funkin/commit/f385cf9fd33e5358427f40dad3fecfed233c1706)) - by @AbnormalPoof in [#4564](https://github.com/FunkinCrew/Funkin/pull/4564) -- The Week 3 Pico Mix cutscene no longer breaks with Naughtyness turned off. ([e3aba5c](https://github.com/FunkinCrew/funkin.assets/commit/e3aba5c4faa8e8c705c3e0daf04e30db7ac5a136)) - by @Lasercar in [funkin.assets#169](https://github.com/FunkinCrew/funkin.assets/pull/169) -- Adjusted the pixel strumline’s position when Downscroll is enabled to match the regular notestyle. ([ea93ec9](https://github.com/FunkinCrew/Funkin/commit/ea93ec90cb5c5dbd4a5bea64114af58c70cb43f4)) - by @Lasercar in [#4318](https://github.com/FunkinCrew/Funkin/pull/4318) -- The Main Menu now correctly remembers your most recently selected menu item. ([05b9d68](https://github.com/FunkinCrew/Funkin/commit/05b9d68645b71c9cc36a5cb0c0e93af6acb36132)) - by @Lasercar and @Hundrec in [#4227](https://github.com/FunkinCrew/Funkin/pull/4227) -- Fixed an occasional softlock when returning to the Freeplay menu from a song. ([b15e809](https://github.com/FunkinCrew/Funkin/commit/b15e809c63664e039781592dcbdee4383e73800e)) - by @TechnikTil in [#4665](https://github.com/FunkinCrew/Funkin/pull/4665) -- Switching to and from the Freeplay Random capsule now behaves more consistently. ([832bc5b](https://github.com/FunkinCrew/Funkin/commit/832bc5bd83d49a646b9c8cb2b767602c848be908)) - by @VioletSnowLeopard in [#4885](https://github.com/FunkinCrew/Funkin/pull/4885) -- Changing Freeplay filters with the Random capsule selected now behaves more consistently. ([edf6889](https://github.com/FunkinCrew/Funkin/commit/edf6889af9e7f68caead9b8139178a36b4b5b2d6)) - by @VioletSnowLeopard in [#4913](https://github.com/FunkinCrew/Funkin/pull/4913) -- Switching between identical Freeplay filters no longer makes the songlist invisible. ([8b9775d](https://github.com/FunkinCrew/Funkin/commit/8b9775d91f4f2b5896a637a014b4be770319968e)) - by @VioletSnowLeopard in [#4919](https://github.com/FunkinCrew/Funkin/pull/4919) -- The millions place digit of the Freeplay score display now updates properly. ([d9fcaf0](https://github.com/FunkinCrew/Funkin/commit/d9fcaf0e6382b121f7773d23f4864364a1e6a577)) - by @Lasercar in [#4065](https://github.com/FunkinCrew/Funkin/pull/4065) -- The Freeplay clear percent display is now more consistently aligned. ([329182e](https://github.com/FunkinCrew/funkin.assets/commit/329182ea1b6839187a1d800b2d009a4c1874479d)) - by @Hundrec in [funkin.assets#37](https://github.com/FunkinCrew/funkin.assets/pull/37) -- The Freeplay alternate instrumental selector now disables all other inputs. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) -- The Freeplay alternate instrumental selector no longer becomes offset when changing difficulties. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) -- Exiting and then navigating through the Freeplay alternate instrumental selector no longer crashes the game. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) -- Ranks no longer overwrite themselves in the Freeplay new rank animation. ([664d9e0](https://github.com/FunkinCrew/Funkin/commit/664d9e0fb3f8b93b1f941fb3b6724c37f5b9e5b5)) - @Lasercar in [#4214](https://github.com/FunkinCrew/Funkin/pull/4214) -- The debris in Pico’s Great Results animation no longer grows in size. ([c108a7f](https://github.com/FunkinCrew/funkin.assets/commit/c108a7ff0d11bf328e7b232160b8f68c71e21bca)) - by @ThatRozebudDude in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) -- Fixed the song not starting if more than 32 sounds are playing at once. ([31d3718](https://github.com/FunkinCrew/Funkin/commit/31d3718e5c33371cacd495219f9cc3908244bf71)) - by @KoloInDaCrib in [#4352](https://github.com/FunkinCrew/Funkin/pull/4352) -- Hot reloading (pressing F5) during dialogue no longer crashes the game. ([3e0dbe2](https://github.com/FunkinCrew/Funkin/commit/3e0dbe2758d68ccf4ded1d08bec247ab05d70829)) - by @KoloInDaCrib in [#4769](https://github.com/FunkinCrew/Funkin/pull/4769) -- Restarting a song without either a player or an opponent no longer crashes the game, fixing minimal playtest mode. ([bbc0546](https://github.com/FunkinCrew/Funkin/commit/bbc0546c7450b929dc78ad9271171ea899478e9d)) - by @thesuperpig56 in [#4778](https://github.com/FunkinCrew/Funkin/pull/4778) -- The sound tray no longer behaves incorrectly after wiping save data. ([afbb335](https://github.com/FunkinCrew/Funkin/commit/afbb3359938f020707efd92a17419e3658528ea5)) - by @Lasercar in [#4617](https://github.com/FunkinCrew/Funkin/pull/4617) -- Opening a chart from the “Open Recent” section no longer crashes the Chart Editor. ([def1b74](https://github.com/FunkinCrew/Funkin/commit/def1b74eb6987272bc360cbf586ddcd1c26c6381)) - by @CrusherNotDrip in [#4936](https://github.com/FunkinCrew/Funkin/pull/4936) -- Loading an invalid variation in the Chart Editor no longer crashes the game. ([c5f2a74](https://github.com/FunkinCrew/Funkin/commit/c5f2a744940dbc685b25373fa2dabb548f0b26fa)) - by @NotHyper-474 in [#4391](https://github.com/FunkinCrew/Funkin/pull/4391) -- Default difficulties are no longer re-added when saving and loading a .FNFC chart. ([8074d57](https://github.com/FunkinCrew/Funkin/commit/8074d571860aba2c2f6f1c642d8d0e671ff5355e)) - by @Lasercar in [#4216](https://github.com/FunkinCrew/Funkin/pull/4216) -- The Chart Editor now resizes properly after entering Fullscreen during a playtest. ([142ea6d](https://github.com/FunkinCrew/Funkin/commit/142ea6db0c53f6f9288109604702c2e7e5bc6f18)) - by @NotHyper-474 in [#4266](https://github.com/FunkinCrew/Funkin/pull/4266) -- Added three missing hotkeys to the Chart Editor user guide. ([73ccb9a](https://github.com/FunkinCrew/funkin.assets/commit/73ccb9a80d08f3311f51cf88950692d7c1ea5d60)) - by @NotHyper-474 and @Hundrec in [funkin.assets#83](https://github.com/FunkinCrew/funkin.assets/pull/83) -- The “Skip Forward” button is no longer named “Skip Back” in the Chart Editor. ([78f9fb7](https://github.com/FunkinCrew/funkin.assets/commit/78f9fb7cb6eaf7466826f144a0142c008fbff2f8)) - by @Hundrec in [funkin.assets#22](https://github.com/FunkinCrew/funkin.assets/pull/22) -- Exporting a character .JSON from the Animation Editor now fills in the file name. ([a8262a8](https://github.com/FunkinCrew/Funkin/commit/a8262a8d3b4d2169327131e21c98f803da4a5ee4)) - by @anysad in [#3090](https://github.com/FunkinCrew/Funkin/pull/3090) -- Properly credited MtH as a Charter in Monster’s metadata. ([6a10799](https://github.com/FunkinCrew/funkin.assets/commit/6a10799a40eb2b2deb364bcd3cc4387abe8e8bc4)) - by @ChillyBeanBAM in [funkin.assets#66](https://github.com/FunkinCrew/funkin.assets/pull/66) -- Corrected the chances of a Pause Menu easter egg appearing. ([0101bae](https://github.com/FunkinCrew/Funkin/commit/0101bae7ecc800e26efd9590fdfa1305039b4461)) - by @VioletSnowLeopard in [#4358](https://github.com/FunkinCrew/Funkin/pull/4358) -- Removed spammy traces for Playable Pico’s animations. ([f87255d](https://github.com/FunkinCrew/funkin.assets/commit/f87255d4bcb7a7ce0dc920aefc36b98a96115c75)) - by @VioletSnowLeopard in [funkin.assets#179](https://github.com/FunkinCrew/funkin.assets/pull/179) -- Fixed memory overflowing in crash logs. ([189e028](https://github.com/FunkinCrew/Funkin/commit/189e028442c7fb892ce4dab62a5d08db658f3b2b)) - by @ACrazyTown in [#4589](https://github.com/FunkinCrew/Funkin/pull/4589) - -### Removed - -- The CHANGELOG.md file will no longer be included in builds. Visit the [Funkin' GitHub](https://github.com/FunkinCrew/Funkin/blob/main/CHANGELOG.md) to view the latest changes! ([a7da71c](https://github.com/FunkinCrew/Funkin/commit/a7da71c8a87baa440a0bc6e23d7e9b36c7574e14)) - by @Hundrec and @NotHyper-474 in [#4868](https://github.com/FunkinCrew/Funkin/pull/4868) - -## New Contributors for 0.6.4 - -* @thesuperpig56 made their first contribution in [#4778](https://github.com/FunkinCrew/Funkin/pull/4778) -* @CrusherNotDrip made their first contribution in [#4936](https://github.com/FunkinCrew/Funkin/pull/4936) -* @ChillyBeanBAM made their first contribution in [funkin.assets#66](https://github.com/FunkinCrew/funkin.assets/pull/66) -* @ThatRozebudDude made their first contribution in [funkin.assets#73](https://github.com/FunkinCrew/funkin.assets/pull/73) - - - ## [0.6.3] - 2025-04-25 ### Added @@ -95,7 +38,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - The nearest song with an Erect variation will be selected when switching. - Switching difficulties now always plays the capsule jump-in animation. - The "Random" capsule now plays animations consistent with other capsules. -- The Eggnog Erect cutscene can now be skipped. ([0303a03](https://github.com/FunkinCrew/funkin.assets/commit/1202651db8ea938fe11b6b734fbf7884d101e6ad)) - by @ShadzXD in [funkin.assets#62](https://github.com/FunkinCrew/funkin.assets/pull/62) +- The Eggnog Erect cutscene can now be skipped. ([0303a03](https://github.com/FunkinCrew/funkin.assets/commit/1202651db8ea938fe11b6b734fbf7884d101e6ad)) - by @ShadzXD in [#62](https://github.com/FunkinCrew/funkin.assets/pull/62) - Swapped the positions of “skip” and “restart” items in the dialogue pause menu for consistency. ([1f88a3b](https://github.com/FunkinCrew/Funkin/commit/1f88a3b6e13e9283ad680805deab5e27ba141d96)) - by @VioletSnowLeopard in [#4553](https://github.com/FunkinCrew/Funkin/pull/4553) - The Controls menu now prevents unbinding essential UI controls to safeguard against softlocking save files. ([7eebce4](https://github.com/FunkinCrew/Funkin/commit/7eebce432d7627a1cf0bbd43f22a6f9bcb63ff65)) - by @VioletSnowLeopard in [#4382](https://github.com/FunkinCrew/Funkin/pull/4382) - Renamed “Auto Pause” preference to “Pause on Unfocus” for clarity. ([52be941](https://github.com/FunkinCrew/Funkin/commit/52be941b4503da0ac76918e2482ab1804866f2cf)) - by @JackXson-Real in [#4346](https://github.com/FunkinCrew/Funkin/pull/4346) @@ -118,7 +61,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - A-Bot's visualizer is now blank before the song starts. - Debug editor tooltips no longer display behind windows. - Clearing save data no longer crashes the game. -- Adding custom parameters to note kinds no longer crashes the Chart Editor. ([0a7bd31](https://github.com/FunkinCrew/Funkin/commit/0a7bd3111f59efbecfe097f8bbcfdefa5ace299d)) - by @Lasercar in [funkin.assets#136](https://github.com/FunkinCrew/funkin.assets/pull/136) +- Adding custom parameters to note kinds no longer crashes the Chart Editor. ([0a7bd31](https://github.com/FunkinCrew/Funkin/commit/0a7bd3111f59efbecfe097f8bbcfdefa5ace299d)) - by @Lasercar in [#136](https://github.com/FunkinCrew/funkin.assets/pull/136) - Improved performance in the Freeplay menu before entering a song. ([2b7254f](https://github.com/FunkinCrew/Funkin/commit/2b7254fbd2356e9da91e216f178a88f17874a6eb)) - by @superpowers04 in [#4729](https://github.com/FunkinCrew/Funkin/pull/4729) - Prevented a crash by capping Freeplay and Results screen score displays at their largest possible values (actual scores are not capped). ([51324e9](https://github.com/FunkinCrew/Funkin/commit/51324e9c283c43ca861d3369ba9b3e1db9c89765)) - by @KoloInDaCrib in [#3634](https://github.com/FunkinCrew/Funkin/pull/3634) - The Animation Editor no longer crashes when opened. ([b40b4b0](https://github.com/FunkinCrew/Funkin/commit/b40b4b03692910afceff361cf6ca3298fd787e3c)) - by @sector-a in [#4582](https://github.com/FunkinCrew/Funkin/pull/4582) @@ -192,7 +135,7 @@ The Pit Stop 2 update! - Added on-screen descriptions for each item in the Preferences menu. ([a17b0e8](https://github.com/FunkinCrew/Funkin/commit/a17b0e8b3cc1d56fcdc0b51eaca9fd57cdb5bce0)) - by @anysad in [#3872](https://github.com/FunkinCrew/Funkin/pull/3872) - Added precise scrolling in the Chart Editor using Ctrl-Mouse Wheel. ([0d8e4a5](https://github.com/FunkinCrew/Funkin/commit/0d8e4a53305d6d069454812766300122f3581e31)) - by @ninjamuffin99 in [#3806](https://github.com/FunkinCrew/Funkin/pull/3806) - Added a “None” option to the character selector in the Chart Editor. ([9c2ef02](https://github.com/FunkinCrew/Funkin/commit/9c2ef0236818883ad1275571dac49eab70ca0ea0)) - by @Lasercar in [#4279](https://github.com/FunkinCrew/Funkin/pull/4279) -- Added the ability to flip the character horizontally in the Animation Editor by pressing G. ([de02137](https://github.com/FunkinCrew/Funkin/commit/de02137d7c7d1779e85aeda34743f506a5b9cc27)) - by @AbnormalPoof in [#3028](https://github.com/FunkinCrew/Funkin/pull/3028) +- Added the ability to flip the character in the Animation Editor. ([de02137](https://github.com/FunkinCrew/Funkin/commit/de02137d7c7d1779e85aeda34743f506a5b9cc27)) - by @AbnormalPoof in [#3028](https://github.com/FunkinCrew/Funkin/pull/3028) - Added offsets support for album titles. ([69d8570](https://github.com/FunkinCrew/Funkin/commit/69d8570a9eb06011ed6dd95fcbef83d90f7f8684)) - by @AbnormalPoof in [#3618](https://github.com/FunkinCrew/Funkin/pull/3618) - Added three new properties to stage data: `angle`, `scroll`, and `alpha`. ([ff56b19](https://github.com/FunkinCrew/Funkin/commit/ff56b1948aef42bbb6bb4ede4f9b2012d49ab044)) - by @AbnormalPoof in [#3720](https://github.com/FunkinCrew/Funkin/pull/3720) - Added script events for losing/gaining focus. ([4b127b6](https://github.com/FunkinCrew/Funkin/commit/4b127b64130f6f753d0574ec66a1672322e4bd13)) - by @AbnormalPoof in [#3721](https://github.com/FunkinCrew/Funkin/pull/3721) @@ -240,7 +183,6 @@ The Pit Stop 2 update! - The Character Select screen no longer plays the unlock animation for some locked characters. ([7058126](https://github.com/FunkinCrew/Funkin/commit/7058126e99adb55e43f5f487b007d3efa9f324d5)) - by @AbnormalPoof in [#3748](https://github.com/FunkinCrew/Funkin/pull/3748) - All time signatures in the Chart Editor now display the correct number of beat/step tick lines. ([e570dfb](https://github.com/FunkinCrew/Funkin/commit/e570dfb8e754f9cb29ac2d8fff6e8513bc68b630)) - by @Keoiki in [#2860](https://github.com/FunkinCrew/Funkin/pull/2860) - The Debug menu now opens with the correct camera position. ([090ddd1](https://github.com/FunkinCrew/Funkin/commit/090ddd1f1c2aa48fdb83127b2235041643c99af5)) - by @ninjamuffin99 in [#3769](https://github.com/FunkinCrew/Funkin/pull/3769) -- Finally added an outline to the third GF sticker. [9e62572](https://github.com/FunkinCrew/funkin.assets/commit/9e62572ae27dc676c624a81af5c755490eb2dafe) - @M7theguy in [funkin.assets#33](https://github.com/FunkinCrew/funkin.assets/pull/33) - Removed an unused Freeplay class left over from legacy versions. ([abe4ac8](https://github.com/FunkinCrew/Funkin/commit/abe4ac8485539cbebe527a9a75698950232b68d2)) - by @AbnormalPoof in [#4370](https://github.com/FunkinCrew/Funkin/pull/4370) - Blacklisted an additional class for security. ([3492d41](https://github.com/FunkinCrew/Funkin/commit/3492d412c65c7f3fd61e6fc6c9410d8467122ab0)) - by @AbnormalPoof in [#4074](https://github.com/FunkinCrew/Funkin/pull/4074) - Removed an unused class from Polymod blacklist. ([06c12e3](https://github.com/FunkinCrew/Funkin/commit/06c12e36c6bd6df4e2be32a3bec540172e79e162)) - by @AbnormalPoof in [#3729](https://github.com/FunkinCrew/Funkin/pull/3729) @@ -254,7 +196,6 @@ The Pit Stop 2 update! * @MidyGamy made their first contribution in [#4068](https://github.com/FunkinCrew/Funkin/pull/4068) * @Lasercar made their first contribution in [#4082](https://github.com/FunkinCrew/Funkin/pull/4082) * @MrScottyPieey made their first contribution in [#4085](https://github.com/FunkinCrew/Funkin/pull/4085) -* @M7theguy made their first contribution in [funkin.assets#33](https://github.com/FunkinCrew/funkin.assets/pull/33) @@ -606,7 +547,6 @@ The Pit Stop 1 update! ## New Contributors for 0.4.0 -* @doggogit made their first contribution in [#2325](https://github.com/FunkinCrew/Funkin/pull/2325) * @Noobz4Life made their first contribution in [#2472](https://github.com/FunkinCrew/Funkin/pull/2472) * @MaybeMaru made their first contribution in [#2488](https://github.com/FunkinCrew/Funkin/pull/2488) * @NotHyper-474 made their first contribution in [#2490](https://github.com/FunkinCrew/Funkin/pull/2490) diff --git a/assets b/assets index b49c4c4c0..4312447c4 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit b49c4c4c0fe48629231779ef72649733a31c0c4b +Subproject commit 4312447c4cc59f2c0eba38b20b7025329b33e0ac diff --git a/docs/COMPILING.md b/docs/COMPILING.md index 87b3b9749..c6fd9fb49 100644 --- a/docs/COMPILING.md +++ b/docs/COMPILING.md @@ -23,7 +23,7 @@ - Mac: [`lime setup mac` Documentation](https://lime.openfl.org/docs/advanced-setup/macos/) - Linux: [`lime setup linux` Documentation](https://lime.openfl.org/docs/advanced-setup/linux/) - One of Funkin's dependencies uses libVLC, which requires you to install some development packages to be able to compile. - Command for Ubuntu/Debian based systems: `sudo apt install libvlc-dev libvlccore-dev libvlccore9`, and for other distros, please refer to [hxvlc's documentation](https://github.com/MAJigsaw77/hxvlc?tab=readme-ov-file#dependencies) + Command for Ubuntu/Debian based systems: `sudo apt install libvlc-dev libvlccore-dev libvlccore9` - HTML5: Compiles without any extra setup 10. If you are targeting for native, you may need to run `lime rebuild ` and `lime rebuild -debug` 11. `lime test ` to build and launch the game for your platform (for example, `lime test windows`) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 563ee24b4..9240dd2ed 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -60,7 +60,7 @@ This section provides guidelines to follow when [opening an issue](https://githu ## Requirements Make sure you're playing: -- the latest version of the game (currently v0.6.4) +- the latest version of the game (currently v0.6.3) - without any mods - on [Newgrounds](https://www.newgrounds.com/portal/view/770371) or downloaded from [itch.io](https://ninja-muffin24.itch.io/funkin) @@ -77,16 +77,19 @@ Here's a list of commonly suggested features and the reasons why they won't be a | Flashy Combo Milestones | https://github.com/FunkinCrew/Funkin/pull/4700#issuecomment-2798916579 | | Losing Icons for DD and Parents | https://github.com/FunkinCrew/Funkin/issues/3048#issuecomment-2243491536 | | Playable GF / Speaker BF / Speaker Pico | https://github.com/FunkinCrew/Funkin/issues/2953#issuecomment-2216985230 | -| New Intro Text Lines | https://github.com/FunkinCrew/Funkin/issues/5031#issuecomment-2855593376 | | Fresh (Chill Mix) as Title Screen Music | https://github.com/FunkinCrew/Funkin/pull/4282#issuecomment-2709334718 | +| Adjusted Difficulty Ratings | https://github.com/FunkinCrew/Funkin/issues/2781#issuecomment-2172053144 | | Difficulty Ratings above 20 | https://github.com/FunkinCrew/Funkin/issues/3075#issuecomment-2368984497 | +| Ability to Reset a Song's Score | https://github.com/FunkinCrew/Funkin/issues/3916#issuecomment-2525408261 | | Quick Restart Keybind (not R) | https://github.com/FunkinCrew/Funkin/issues/3268#issuecomment-2351095232 | | Countdown after Unpausing Song | https://github.com/FunkinCrew/Funkin/issues/2721#issuecomment-2159330106 | +| 4:3 Aspect Ratio for Week 6 | https://github.com/FunkinCrew/Funkin/issues/3840#issuecomment-2689158438 | | "Philly Glow" Effect from Psych Engine | https://github.com/FunkinCrew/Funkin/issues/3788#issuecomment-2688966982 | | Importing Charts from Psych Engine (and other mod content) | https://github.com/FunkinCrew/Funkin/issues/2586#issuecomment-2125733327 | | Backwards Compatibility for Modding | https://github.com/FunkinCrew/Funkin/issues/3949#issuecomment-2608391329 | | Lua Support | https://github.com/FunkinCrew/Funkin/issues/2643#issuecomment-2143718093 | + ## Issue Types Choose the issue template that best suits your needs! Here's what each template is designed for: @@ -153,14 +156,14 @@ Choosing the right base branch helps keep your commit history clean and avoid me Once you’re satisfied with the changes you’ve made, open a PR and base it on the same branch you previously chose. ## Maintaining your pull request -Keeping your pull request clean and easy to review increases the chance that it will be accepted! +Keeping your pull request clean and easy to review increases the chance that it will be accepted! Our maintenance policy is as follows: - If we require changes to your PR, we will label your PR `status: needs revision`. - We may also leave a comment under your PR specifying what changes you should make. - If you receive a comment, you have 90 days to implement the requested changes. - After this period, your PR will be closed due to inactivity and labeled `status: stale`. -- Even after your PR is closed, you may request for us to reopen it. Just be sure to address the issues! +- Even after your PR is closed, you may request for us to reopen it. Just be sure to address the issues! This policy ensures that PRs awaiting review are up to date and ready to merge. diff --git a/docs/TRACY.md b/docs/TRACY.md deleted file mode 100644 index cac039897..000000000 --- a/docs/TRACY.md +++ /dev/null @@ -1,12 +0,0 @@ -# Tracy Performance Profiling - -In v0.5.1, Funkin' gained support for a powerful instrumentation-based profiler known as Tracy. This development tool allows you to see exactly what the game is doing at any given moment, how long each function is taking to call, and even how memory is allocated and deallocated. This is the most powerful tool in your toolbox for diagnosing and resolving performance issues. - -## How to Use Tracy - -1. Download [Tracy](https://github.com/wolfpld/tracy) -2. Build the game with the `FEATURE_DEBUG_TRACY` flag. For example, `lime build windows -debug -DFEATURE_DEBUG_TRACY` -3. Start Tracy, click Connect. Tracy will start waiting for Funkin' to start. -4. Start the game with Tracy enabled. - -![Image](https://github.com/user-attachments/assets/2a394ca7-bc21-4fe3-ae55-347768fb5b87) diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx index 3ffb940ca..2df41bd69 100644 --- a/source/funkin/play/PlayState.hx +++ b/source/funkin/play/PlayState.hx @@ -1020,7 +1020,7 @@ class PlayState extends MusicBeatSubState pauseButton.alpha = 0; hitbox.visible = false; #end - var event = new PauseScriptEvent(FlxG.random.bool((1 / 1000) * 100)); + var event = new PauseScriptEvent(FlxG.random.bool(1 / 1000)); dispatchEvent(event); @@ -1899,16 +1899,14 @@ class PlayState extends MusicBeatSubState playerStrumline.x = (FlxG.width / 2 + Constants.STRUMLINE_X_OFFSET) + (cutoutSize / 2.0); // Classic style // playerStrumline.x = FlxG.width - playerStrumline.width - Constants.STRUMLINE_X_OFFSET; // Centered style - playerStrumline.y = Preferences.downscroll ? FlxG.height - playerStrumline.height - Constants.STRUMLINE_Y_OFFSET - noteStyle.getStrumlineOffsets()[1] - - noteStyle.getStrumlineOffsets()[1] : Constants.STRUMLINE_Y_OFFSET; + playerStrumline.y = Preferences.downscroll ? FlxG.height - playerStrumline.height - Constants.STRUMLINE_Y_OFFSET - noteStyle.getStrumlineOffsets()[1] : Constants.STRUMLINE_Y_OFFSET; playerStrumline.zIndex = 1001; playerStrumline.cameras = [camHUD]; // Position the opponent strumline on the left half of the screen opponentStrumline.x = Constants.STRUMLINE_X_OFFSET; - opponentStrumline.y = Preferences.downscroll ? FlxG.height - opponentStrumline.height - Constants.STRUMLINE_Y_OFFSET - - noteStyle.getStrumlineOffsets()[1] - noteStyle.getStrumlineOffsets()[1] : Constants.STRUMLINE_Y_OFFSET; + opponentStrumline.y = Preferences.downscroll ? FlxG.height - opponentStrumline.height - Constants.STRUMLINE_Y_OFFSET - noteStyle.getStrumlineOffsets()[1] : Constants.STRUMLINE_Y_OFFSET; opponentStrumline.zIndex = 1000; opponentStrumline.cameras = [camHUD];