From f8aa7201c05cc94d7416b0585ac8c593f09643fc Mon Sep 17 00:00:00 2001 From: Ralty <78720179+Raltyro@users.noreply.github.com> Date: Wed, 6 Aug 2025 19:22:26 +0700 Subject: [PATCH 1/3] camGameZoomMult, camHudZoomMult --- source/funkin/backend/system/Flags.hx | 11 +++++------ source/funkin/game/PlayState.hx | 24 +++++++++++++++++------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/source/funkin/backend/system/Flags.hx b/source/funkin/backend/system/Flags.hx index 281ccae4..129a4aeb 100644 --- a/source/funkin/backend/system/Flags.hx +++ b/source/funkin/backend/system/Flags.hx @@ -138,8 +138,12 @@ class Flags { public static var DEFAULT_HUD_ZOOM:Float = 1.0; public static var DEFAULT_ZOOM:Float = 1.0; public static var DEFAULT_ZOOM_LERP:Float = 0.05; + public static var MAX_CAMERA_ZOOM_MULT:Float = 10; public static var USE_CAM_ZOOM_MULT:Bool = true; - public static var MAX_CAMERA_ZOOM_MULT:Float = 1.35; + public static var DEFAULT_CAM_ZOOM_MULT:Float = 0.015; + public static var DEFAULT_HUD_ZOOM_MULT:Float = 0.03; + public static var DEFAULT_CAM_ZOOM_LERP:Float = 0.05; + public static var DEFAULT_HUD_ZOOM_LERP:Float = 0.05; // to translate these you need to convert them into ids // Resume -> pause.resume @@ -167,11 +171,6 @@ class Flags { public static var DEFAULT_INTRO_LENGTH:Int = 5; public static var DEFAULT_INTRO_SPRITES:Array = [null, 'game/ready', 'game/set', 'game/go']; - public static var CAM_BOP_STRENGTH:Float = 0.015; - public static var HUD_BOP_STRENGTH:Float = 0.03; - public static var DEFAULT_CAM_ZOOM_LERP:Float = 0.05; - public static var DEFAULT_HUD_ZOOM_LERP:Float = 0.05; - public static var MAX_SPLASHES:Int = 8; public static var STUNNED_TIME:Float = 5 / 60; diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 4dc1c287..13143e83 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -362,6 +362,10 @@ class PlayState extends MusicBeatState * Speed at which the game camera zoom lerps to. */ public var camGameZoomLerp:Float = Flags.DEFAULT_CAM_ZOOM_LERP; + /** + * The current multiplier for game camera zooming. + */ + public var camGameZoomMult:Float = Flags.DEFAULT_CAM_ZOOM_MULT; /** * Camera zoom at which the hud lerps to. @@ -371,6 +375,10 @@ class PlayState extends MusicBeatState * Speed at which the hud camera zoom lerps to. */ public var camHUDZoomLerp:Float = Flags.DEFAULT_HUD_ZOOM_LERP; + /** + * The current multiplier for game camera zooming. + */ + public var camHUDZoomMult:Float = Flags.DEFAULT_HUD_ZOOM_MULT; /** * Camera zoom at which the cameras that zooms lerps to. @@ -420,7 +428,7 @@ class PlayState extends MusicBeatState */ public var useCamZoomMult:Bool = Flags.USE_CAM_ZOOM_MULT; /** - * The current multiplier for cam zooming. + * The current multiplier for camera zooming. * (Only used if useCamZoomMult is on). */ public var camZoomingMult:Float = Flags.DEFAULT_ZOOM; @@ -429,7 +437,7 @@ class PlayState extends MusicBeatState */ public var maxCamZoom(get, default):Float = Math.NaN; - private inline function get_maxCamZoom() return Math.isNaN(maxCamZoom) ? maxCamZoomMult * defaultCamZoom : maxCamZoom; + private inline function get_maxCamZoom() return Math.isNaN(maxCamZoom) ? defaultCamZoom + (camZoomingMult * camGameZoomMult) : maxCamZoom; /** * Zoom for the pixel assets. @@ -1348,10 +1356,12 @@ class PlayState extends MusicBeatState var beat = Conductor.getBeats(camZoomingEvery, camZoomingInterval, camZoomingOffset); if (camZoomingLastBeat != beat) { camZoomingLastBeat = beat; - if (useCamZoomMult) camZoomingMult = Math.min(camZoomingMult + camZoomingStrength, defaultZoom + camZoomingStrength); + if (useCamZoomMult) { + if (camZoomingMult < maxCamZoomMult) camZoomingMult += camZoomingStrength; + } else if (FlxG.camera.zoom < maxCamZoom) { - FlxG.camera.zoom += 0.015 * camZoomingStrength; - camHUD.zoom += 0.03 * camZoomingStrength; + FlxG.camera.zoom += camGameZoomMult * camZoomingStrength; + camHUD.zoom += camHUDZoomMult * camZoomingStrength; } } } @@ -1397,8 +1407,8 @@ class PlayState extends MusicBeatState if (camZooming) { if (useCamZoomMult) { camZoomingMult = lerp(camZoomingMult, defaultZoom, camZoomLerp) - defaultZoom; - FlxG.camera.zoomMultiplier = camZoomingMult * 0.015 + defaultZoom; - camHUD.zoomMultiplier = camZoomingMult * 0.03 + defaultZoom; + FlxG.camera.zoomMultiplier = camZoomingMult * camGameZoomMult + defaultZoom; + camHUD.zoomMultiplier = camZoomingMult * camHUDZoomMult + defaultZoom; camZoomingMult += defaultZoom; } FlxG.camera.zoom = lerp(FlxG.camera.zoom, defaultCamZoom, camGameZoomLerp); From 1993d205caadd50f5ca12eeca5139f5e20eef0c0 Mon Sep 17 00:00:00 2001 From: Ralty <78720179+Raltyro@users.noreply.github.com> Date: Wed, 6 Aug 2025 21:06:28 +0700 Subject: [PATCH 2/3] Camera Bop --- .../editors/charter/event-icons/Camera Bop.png | Bin 0 -> 197 bytes source/funkin/backend/chart/EventsData.hx | 5 ++++- source/funkin/game/PlayState.hx | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 assets/images/editors/charter/event-icons/Camera Bop.png diff --git a/assets/images/editors/charter/event-icons/Camera Bop.png b/assets/images/editors/charter/event-icons/Camera Bop.png new file mode 100644 index 0000000000000000000000000000000000000000..8186444979a42857600582a7a8c6a57e6afc4ff6 GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJXMsm#F#`j)FbFd;%$g$s6ch^Z z32_C||NsB**!!QQdb6HYE|BZLms=7@F_r}R1v5B2yO9Ru_;|WFhE&{QJ=n;5K!JzZ zz`W(Z{JSGL3|kl+CNE;(;V6jCco?_c^PK0U!iTm8MAjTO&PnWUR|T5#;Vci=fd(gW dRxXeOL7vd$@?2>`~nG<*O6 literal 0 HcmV?d00001 diff --git a/source/funkin/backend/chart/EventsData.hx b/source/funkin/backend/chart/EventsData.hx index 9ef2e4f2..7c4f9aec 100644 --- a/source/funkin/backend/chart/EventsData.hx +++ b/source/funkin/backend/chart/EventsData.hx @@ -10,7 +10,7 @@ import openfl.Assets; using StringTools; class EventsData { - public static var defaultEventsList:Array = ["HScript Call", "Camera Movement", "Camera Position", "Add Camera Zoom", "Camera Zoom", "Camera Modulo Change", "Camera Flash", "BPM Change", "Continuous BPM Change", "Time Signature Change", "Scroll Speed Change", "Alt Animation Toggle", "Play Animation"]; + public static var defaultEventsList:Array = ["HScript Call", "Camera Movement", "Camera Position", "Add Camera Zoom", "Camera Bop", "Camera Zoom", "Camera Modulo Change", "Camera Flash", "BPM Change", "Continuous BPM Change", "Time Signature Change", "Scroll Speed Change", "Alt Animation Toggle", "Play Animation"]; public static var defaultEventsParams:Map> = [ "HScript Call" => [ {name: "Function Name", type: TString, defValue: "myFunc"}, @@ -56,6 +56,9 @@ class EventsData { {name: "Amount", type: TFloat(-10, 10, 0.01, 2), defValue: 0.05}, {name: "Camera", type: TDropDown(['camGame', 'camHUD']), defValue: "camGame"} ], + "Camera Bop" => [ + {name: "Amount", type: TFloat(-10, 10, 0.1, 2), defValue: 0.1} + ], "Camera Zoom" => [ {name: "Tween Zoom?", type: TBool, defValue: true}, {name: "New Zoom", type: TFloat(-10, 10, 0.01, 2), defValue: 1}, diff --git a/source/funkin/game/PlayState.hx b/source/funkin/game/PlayState.hx index 13143e83..6a12bd64 100644 --- a/source/funkin/game/PlayState.hx +++ b/source/funkin/game/PlayState.hx @@ -1569,6 +1569,8 @@ class PlayState extends MusicBeatState case "Add Camera Zoom": var camera:FlxCamera = event.params[1] == "camHUD" ? camHUD : camGame; camera.zoom += event.params[0]; + case "Camera Bop": + camZoomingMult += event.params[0]; case "Camera Zoom": var cam = event.params[2] == "camHUD" ? camHUD : camGame; var name = (event.params[2] == "camHUD" ? "camHUD" : "camGame") + ".zoom"; // avoiding having different values from these 2 - Nex From e89c0411c64dfdab808fa80ae475ee7aab96e828 Mon Sep 17 00:00:00 2001 From: Frakits <90983918+Frakits@users.noreply.github.com> Date: Wed, 6 Aug 2025 18:04:12 +0300 Subject: [PATCH 3/3] Update UIUtil.hx --- source/funkin/editors/ui/UIUtil.hx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/funkin/editors/ui/UIUtil.hx b/source/funkin/editors/ui/UIUtil.hx index c1054cff..056cf59e 100644 --- a/source/funkin/editors/ui/UIUtil.hx +++ b/source/funkin/editors/ui/UIUtil.hx @@ -150,7 +150,7 @@ class UIUtil { } else if (member is UITextBox) @:privateAccess { var textbox:UITextBox = cast member; if (textbox.__wasFocused) { - textbox.onChange(textbox.label.text); + if (textbox.onChange != null) textbox.onChange(textbox.label.text); textbox.__wasFocused = false; } } @@ -159,4 +159,4 @@ class UIUtil { confirmUISelections(cast member); } } -} \ No newline at end of file +}