From 3cc7f7407d0052559a07ed882a74da3d09c055c4 Mon Sep 17 00:00:00 2001
From: nebulazorua <rainbowsmokefox@gmail.com>
Date: Wed, 8 May 2024 21:08:17 +0800
Subject: [PATCH 1/2] fix focuscamera CLASSIC breaking zooms and snapping

---
 source/funkin/play/event/FocusCameraSongEvent.hx | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/source/funkin/play/event/FocusCameraSongEvent.hx b/source/funkin/play/event/FocusCameraSongEvent.hx
index 074fafccf..1bcac9ad3 100644
--- a/source/funkin/play/event/FocusCameraSongEvent.hx
+++ b/source/funkin/play/event/FocusCameraSongEvent.hx
@@ -127,7 +127,7 @@ class FocusCameraSongEvent extends SongEvent
     switch (ease)
     {
       case 'CLASSIC': // Old-school. No ease. Just set follow point.
-        PlayState.instance.resetCamera(false, true);
+        PlayState.instance.cancelCameraFollowTween();
         PlayState.instance.cameraFollowPoint.setPosition(targetX, targetY);
       case 'INSTANT': // Instant ease. Duration is automatically 0.
         PlayState.instance.tweenCameraToPosition(targetX, targetY, 0);

From fae625a795919fe8b46c29aaa2ebe535f4e95333 Mon Sep 17 00:00:00 2001
From: nebulazorua <rainbowsmokefox@gmail.com>
Date: Wed, 15 May 2024 20:42:11 +0800
Subject: [PATCH 2/2] last commit, if merged, would've likely caused issues if
 going from tween to classic should be fixed now?

---
 source/funkin/play/PlayState.hx                  | 4 ++--
 source/funkin/play/event/FocusCameraSongEvent.hx | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx
index 44ad819c4..8f2c2b674 100644
--- a/source/funkin/play/PlayState.hx
+++ b/source/funkin/play/PlayState.hx
@@ -3128,7 +3128,7 @@ class PlayState extends MusicBeatSubState
   /**
    * Resets the camera's zoom level and focus point.
    */
-  public function resetCamera(?resetZoom:Bool = true, ?cancelTweens:Bool = true):Void
+  public function resetCamera(?resetZoom:Bool = true, ?cancelTweens:Bool = true, ?snap:Bool = true):Void
   {
     // Cancel camera tweens if any are active.
     if (cancelTweens)
@@ -3145,7 +3145,7 @@ class PlayState extends MusicBeatSubState
     }
 
     // Snap the camera to the follow point immediately.
-    FlxG.camera.focusOn(cameraFollowPoint.getPosition());
+    if (snap) FlxG.camera.focusOn(cameraFollowPoint.getPosition());
   }
 
   /**
diff --git a/source/funkin/play/event/FocusCameraSongEvent.hx b/source/funkin/play/event/FocusCameraSongEvent.hx
index 1bcac9ad3..ecb41de98 100644
--- a/source/funkin/play/event/FocusCameraSongEvent.hx
+++ b/source/funkin/play/event/FocusCameraSongEvent.hx
@@ -127,6 +127,7 @@ class FocusCameraSongEvent extends SongEvent
     switch (ease)
     {
       case 'CLASSIC': // Old-school. No ease. Just set follow point.
+        PlayState.instance.resetCamera(false, false, false);
         PlayState.instance.cancelCameraFollowTween();
         PlayState.instance.cameraFollowPoint.setPosition(targetX, targetY);
       case 'INSTANT': // Instant ease. Duration is automatically 0.