diff --git a/source/funkin/ui/debug/DebugMenuSubState.hx b/source/funkin/ui/debug/DebugMenuSubState.hx index ef02a802e..e1f340770 100644 --- a/source/funkin/ui/debug/DebugMenuSubState.hx +++ b/source/funkin/ui/debug/DebugMenuSubState.hx @@ -7,6 +7,7 @@ import funkin.ui.MusicBeatSubState; import funkin.ui.TextMenuList; import funkin.ui.debug.charting.ChartEditorState; import funkin.ui.MusicBeatSubState; +import funkin.util.logging.CrashHandler; class DebugMenuSubState extends MusicBeatSubState { @@ -50,7 +51,9 @@ class DebugMenuSubState extends MusicBeatSubState createItem("ANIMATION EDITOR", openAnimationEditor); createItem("STAGE EDITOR", openStageEditor); createItem("TEST STICKERS", testStickers); - + #if sys + createItem("OPEN CRASH LOG FOLDER", openLogFolder); + #end FlxG.camera.focusOn(new FlxPoint(camFocusPoint.x, camFocusPoint.y)); FlxG.camera.focusOn(new FlxPoint(camFocusPoint.x, camFocusPoint.y + 500)); } @@ -101,6 +104,22 @@ class DebugMenuSubState extends MusicBeatSubState trace('Stage Editor'); } + #if sys + function openLogFolder() + { + #if windows + Sys.command('explorer', [CrashHandler.LOG_FOLDER]); + #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! + Sys.command('open', [CrashHandler.LOG_FOLDER]); + #end + + // TODO: implement linux + // some shit with xdg-open :thinking: emoji... + } + #end + function exitDebugMenu() { // TODO: Add a transition? diff --git a/source/funkin/ui/debug/charting/ChartEditorState.hx b/source/funkin/ui/debug/charting/ChartEditorState.hx index a3aeccc02..4772fab7c 100644 --- a/source/funkin/ui/debug/charting/ChartEditorState.hx +++ b/source/funkin/ui/debug/charting/ChartEditorState.hx @@ -3399,13 +3399,14 @@ class ChartEditorState extends HaxeUIState gridGhostHoldNote.noteData = gridGhostNote.noteData; gridGhostHoldNote.noteDirection = gridGhostNote.noteData.getDirection(); - gridGhostHoldNote.setHeightDirectly(dragLengthPixels); + gridGhostHoldNote.setHeightDirectly(dragLengthPixels, true); gridGhostHoldNote.updateHoldNotePosition(renderedHoldNotes); } else { gridGhostHoldNote.visible = false; + gridGhostHoldNote.setHeightDirectly(0); } } diff --git a/source/funkin/ui/debug/charting/components/ChartEditorHoldNoteSprite.hx b/source/funkin/ui/debug/charting/components/ChartEditorHoldNoteSprite.hx index 0e8c02758..e5971db08 100644 --- a/source/funkin/ui/debug/charting/components/ChartEditorHoldNoteSprite.hx +++ b/source/funkin/ui/debug/charting/components/ChartEditorHoldNoteSprite.hx @@ -9,6 +9,7 @@ import flixel.graphics.frames.FlxTileFrames; import flixel.math.FlxPoint; import funkin.play.notes.SustainTrail; import funkin.data.song.SongData.SongNoteData; +import flixel.math.FlxMath; /** * A sprite that can be used to display the trail of a hold note in a chart. @@ -42,9 +43,12 @@ class ChartEditorHoldNoteSprite extends SustainTrail * Set the height directly, to a value in pixels. * @param h The desired height in pixels. */ - public function setHeightDirectly(h:Float) + public function setHeightDirectly(h:Float, ?lerp:Bool = false) { - sustainLength = h / (getScrollSpeed() * Constants.PIXELS_PER_MS); + if (lerp != null && lerp) sustainLength = FlxMath.lerp(sustainLength, h / (getScrollSpeed() * Constants.PIXELS_PER_MS), 0.25); + else + sustainLength = h / (getScrollSpeed() * Constants.PIXELS_PER_MS); + fullSustainLength = sustainLength; } diff --git a/source/funkin/util/logging/CrashHandler.hx b/source/funkin/util/logging/CrashHandler.hx index 9d1d3f1b9..e254909eb 100644 --- a/source/funkin/util/logging/CrashHandler.hx +++ b/source/funkin/util/logging/CrashHandler.hx @@ -9,7 +9,7 @@ import openfl.events.UncaughtErrorEvent; @:nullSafety class CrashHandler { - static final LOG_FOLDER = 'logs'; + public static final LOG_FOLDER = 'logs'; /** * Initializes